使用 C + + 11,我们现在可以在头声明中初始化类成员:
class aClass
{
private:
int mInt{100};
public:
aClass();
~aClass();
};
所以我有点困惑,传统上构造函数中的初始化列表用于成员初始化:
aClass::aClass()
: mInt(100)
{
...
}
声明中新的 C + + 11成员初始化特性使得初始化列表过时了吗?如果不是,那么这两者的优势是什么?什么情况会使声明时的初始化有利,或者使初始化列表有利?什么时候应该使用一个而不是另一个?