根据我的理解,你在.cpp文件中而不是在.h中初始化静态成员的原因是这样就没有获得成员的几个实例的风险.接下来这个例子:
//Foo.h
#ifndef FOO_H
#define FOO_H
class Foo{
static int a;
};
int Foo::a = 95;
#endif
Run Code Online (Sandbox Code Playgroud)
预处理程序指令确保此.h文件仅编译一次,这确保只有一个静态成员实例.是否可以这样做而不是在.cpp文件中启动静态成员?