靜態變量 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(){}