通常情况下,构造函数应该像这样:
有没有一种正确的方法可以在不重复初始化每个构造函数的情况下初始化成员变量?
//ctor1
SmallSim::SmallSim()
:mSimInit(false)
,mServersCreated(false)
,mTotalCPUTime(0)
{
...
}
如果我有多个构造函数会发生什么?
看起来如果我从第二个构造函数调用第一个构造函数,第一个构造函数中的成员变量不会被初始化。
//ctor2
SmallSim::SmallSim(bool ImmediateExecution, bool Report)
{
SmallSim();
...
}
那么我需要在每个构造函数中重复使用 :mSimInit(false) ,mServersCreated(false) ,mTotalCPUTime(0) 吗?
据我所知,使用 InitClassVars() 不是最好的方法...
//ctor1
SmallSim::SmallSim()
{
InitClassVars();
...
}
//ctor2
SmallSim::SmallSim(bool ImmediateExecution, bool Report)
{
InitClassVars();
...
}
//Common function for init of member vars for multiple constructors
void SmallSim::InitClassVars(void)
{
mSimInit = false;
mServersCreated = false;
mTotalCPUTime = 0;
}
有没有一种正确的方法可以在不重复初始化每个构造函数的情况下初始化成员变量?