num*_*l25 0 c++ initialization ctor-initializer
我正在学习C++.只是好奇,只能在类声明中为静态和常量变量赋值吗?这主要是为什么当您为正常成员分配值时,他们有一种特殊的方式来做它
void myClass::Init() : member1(0), member2(1)
{
}
Run Code Online (Sandbox Code Playgroud)
这看起来应该是一个构造函数; 如果是,它应该没有返回类型,并且它需要与类具有相同的名称,例如,
myClass::myClass()
: member1(0), member2(1)
{
}
Run Code Online (Sandbox Code Playgroud)
只有构造函数可以有一个初始化列表; 你不能将这种类型的初始化委托给一个Init函数.
可以在构造函数初始化列表中初始化任何非静态成员.必须在构造函数初始化列表中初始化所有const和引用成员.
在所有条件相同的情况下,您通常应该首先初始化构造函数初始化列表中的所有成员,而不是构造函数的主体(有时不可能或者使用初始化列表很笨,在这种情况下,您不应该'显然,使用它.