可能的重复:
C++ 初始化列表
选项 1 与选项 2 初始化变量的优缺点是什么?
class MyClass
{
public:
MyClass( float f, char a );
private:
float mFloat;
char mCharacter;
bool mBoolean;
int mInteger;
};
MyClass::MyClass( float f, char a ) : mFloat( f ), mBoolean( true ) // option 1.
{
// option 2
mCharacter = a;
mInteger = 0;
}
编辑:
为什么选项 2 如此常见?
简而言之,尽可能选择初始化列表。 2个原因:
另请注意,变量始终按照它们在类声明中声明的顺序进行初始化,而不是按照它们在初始化列表中列出的顺序进行初始化(启用适当的警告后,如果列表不按顺序写入,编译器会警告您)。类似地,在类的析构函数中的代码执行之后,析构函数将以相反的顺序调用成员析构函数,即类声明中的最后一个到第一个。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)