从我所了解的情况来看,你在.cpp文件中初始化一个静态成员而不是在.h中的原因是这样就没有风险去获得该成员的多个实例。在C++中初始化静态成员
//Foo.h
#ifndef FOO_H
#define FOO_H
class Foo{
static int a;
};
int Foo::a = 95;
#endif
预处理指令确保这个.h文件只编译一次,这确保只有一个静态成员的实例。这是可能的,而不是启动.cpp文件中的静态成员?
.h文件根本不编译。 Foo_H设置为Foo.h不会被多次包含 – Andrew 2012-07-06 11:05:31
[Static Data Member Initialization]的可能重复(http://stackoverflow.com/questions/11300652/static-data-member-initialization) – dasblinkenlight 2012-07-06 11:11:03