为您的 C++ 对象构造函数显式地拥有一个完整的初始化列表有什么优点或缺点吗?(即使我们只是使用默认构造函数,您也列出了所有成员?)
例如,如果我有对象:
class MyObject
{
public:
MyObject();
private:
double _doub;
Foo _foo;
std::set<int> _intSet;
int _int;
Bar _bar;
}
让我的构造函数成为:
MyObject::MyObject():
_doub(1.4), _foo("me"), _intSet(),
_int(5), _bar() {};
而不是只列出我特别需要设置数据的对象(或调用非默认构造函数):
MyObject::MyObject():
_doub(1.4), _foo("me"), _int(5) {};
如果该类只有使用默认构造函数的对象,我是否应该设置一个初始化列表?
例如:
class MyObject
{
public:
MyObject();
private:
Foo _foo;
std::set<int> _intSet;
Bar _bar;
}
有这样的构造函数有什么意义吗?
MyObject::MyObject():
_foo(), _intSet(), _bar() {};
谢谢。