假设我有:
// MyClass.h
class MyClass
{
public:
MyClass();
private:
Something *something_;
}
// MyClass.cpp
MyClass::MyClass()
{
something_ = new Something();
}
在MyClass构造函数的初始化列表中,我应该将something_初始化为NULL(或0)吗?还是因为我在构造函数的主体中对其进行赋值,所以这不必要?推荐采用什么做法?
MyClass::MyClass() : something_(new Something())
- Fred Larsonshared_ptr
或scoped_ptr
这样的智能指针来代替原生指针,以便于即使在异常情况下也能自动清除。 - Fred Larson