静态变量 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(){}