Har*_*Boy 1 c++ oop static-members
我希望有一个用于一次性初始化的类,如下所示:
class Initialise
{
public:
Initialise()
{
m_name = "Jimmy";
}
~Initialise(){}
private:
std::string m_name;
};
class SomeClass
{
static Initialise staticStuff; // constructor runs once, single instance
};
int main()
{
SomeClass testl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我运行上面的命令时,我发现'Initialise'类的构造函数永远不会在调试器中被命中.为什么是这样?
你没有定义staticStuff,你只声明了它.
您必须在类之外声明它,如下所示:
Initialise SomeClass::staticStuff;
Run Code Online (Sandbox Code Playgroud)
此外,就像Borgleader指出的那样,您应该考虑使用成员初始化列表来改进您的代码.