【发布时间】:2013-03-28 00:29:13
【问题描述】:
我试着理解这段代码(取自here):
template <class T> class auto_ptr
{
T* ptr;
public:
explicit auto_ptr(T* p = 0) : ptr(p) {}
~auto_ptr() {delete ptr;}
T& operator*() {return *ptr;}
T* operator->() {return ptr;}
// ...
};
我无法理解这行代码:explicit auto_ptr(T* p = 0) : ptr(p) {}。
据我了解,通过这一行,我们尝试定义一个构造函数,该构造函数具有一个 pointer-to-object-of-T-class 类型的参数。然后我们有= 0。那是什么?它是默认值吗?但是0 如何成为指针的默认值(指针应该将地址作为值,而不是整数)。
【问题讨论】:
标签: c++ pointers constructor default-value