C 中静态成员的类内初始化
在 C 中,不允许在类声明中定义静态成员变量。此操作会导致编译错误“ISO C 禁止非常量静态成员 `j' 的类内初始化”。
禁止原因:
常量成员例外:
常量静态成员允许在类中初始化声明,因为它们在初始化后不会被修改。这确保了代码效率并消除了显式初始化的需要。
标准值的含义:
在 C 中,如果没有显式地初始化静态变量,它们会自动初始化为 0已初始化。但是,在 C 中,静态变量不会自动初始化。您必须在类声明(对于 const 成员)或单独的 .cpp 文件中手动初始化它们。
解决方案:
定义一个非常量静态C 中的成员变量,您应该在单独的 .cpp 文件中初始化它,而不是在类声明中。
对于例如:
// Header file class Test { public: static int j; }; // .cpp file int Test::j = 0;
以上是为什么无法在 C 类中初始化非常量静态成员?的详细内容。更多信息请关注PHP中文网其他相关文章!