可能重复:
Initializing private static members
Why I can't initialize non-const static member or static array in class?
对我来说很奇怪。为什么不假设全局范围内存在静态字段? 感谢。
答案 0 :(得分:5)
它必须放在某处(在某个目标文件中),因此链接器可以找到它。如果您在.h文件中声明了静态字段并将该文件包含在几个.cpp文件中,那么它将是不明确的,哪个目标文件应该为此字段分配。
请注意,原始类型const static
字段可以在类声明中初始化:
class Foo
{
static const int n = 42;
};