1

可能重复:
初始化私有静态成员
为什么我不能在类中初始化非常量静态成员或静态数组?

这对我来说很奇怪。为什么不假设在全局范围内有一个静态字段?

4

1 回答 1

5

它必须放在某个地方(在某个目标文件中),以便链接器可以找到它。如果您在 .h 文件中声明了带有静态文件的类,并将该文件包含在几个 .cpp 文件中,那么应该为该文件分配哪个目标文件的位置将是模棱两可的。

另请注意,原始类型const static字段可以在类声明中初始化:

class Foo
{
    static const int n = 42;
};
于 2012-06-15T06:56:03.637 回答