假設我有:C++:我應該初始化在構造函數體中分配給NULL的指針成員嗎?
// 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())' –
哦,這是最佳做法嗎? – User
總是在構造函數體中優先考慮賦值。並且使用像'shared_ptr'或'scoped_ptr'這樣的智能指針來代替原生指針,這樣即使在例外的情況下,清理也是自動的。 –