据我了解,您在 .cpp 文件中而不是在 .h 中初始化静态成员的原因是,获取该成员的多个实例没有风险。那么以这个例子为例:
//Foo.h
#ifndef FOO_H
#define FOO_H
class Foo{
static int a;
};
int Foo::a = 95;
#endif
预处理器指令确保此 .h 文件仅编译一次,从而确保静态成员只有一个实例。这可以代替在 .cpp 文件中启动静态成员吗?
最佳答案
不,它只确保每个编译单元(.cpp
文件)包含一次 Foo.h
。不在整个项目中。您应该在 Foo.cpp
关于c++ - 在 C++ 中初始化静态成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11360984/