据我了解,您在 .cpp 文件中而不是在 .h 中初始化静态成员的原因是,获取该成员的多个实例是没有风险的。然后以这个例子为例:
//Foo.h
#ifndef FOO_H
#define FOO_H
class Foo{
static int a;
};
int Foo::a = 95;
#endif
预处理器指令确保这个 .h 文件只编译一次,从而确保静态成员只有一个实例。是否可以这样做而不是在 .cpp 文件中启动静态成员?