静态变量 undefined reference
1. c++头文件, 类中定义static 变量,不要在头文件内类外做初始化(头文件被多次包含,会引起多重定义),也不能在构构函数内初始化。
(1.对于类中的静态成员是单独存储的,而不是对象的组成部分, 初始化语名指出了类型,并使用了作用域运算符,但并没有使用关键字static;
2. 初始化应该放在方法文件中,而不是类声明文件中进行,因类声明位于头文件中,程序可能将头文件包含在其他几个文件中。如果在头文件中进行初始化,将出现多个初始化语句的副本,从而引发错误.
3. 对于不能在类声明中初始化静态成员的一种例外情况是,静态数据成员为整型或枚举型const.
2. static 变量在cpp中初始化,且在{}外实始化;
test.hxx
class CTest{
public:
static int a;
};
test.cpp
int CTest::a = 0;
int main(){}
本文探讨了C++中静态变量的正确初始化方法,避免在头文件中直接初始化导致的多重定义错误,以及如何在cpp文件中进行初始化。特别提到了静态数据成员为整型或枚举型const的例外情况。
5501

被折叠的 条评论
为什么被折叠?



