2011-11-15 36 views
0

可能重複:
static members and LNK error in C++
What does it mean to have an undefined reference to a static member?C++ static var。不編譯

我有這個類:

class A_GItem 
{ 
public:   
void create_item();  
private: 
    static int static_index; 
} 

的create_item功能簡單,如:

void create_item() { static_index++; } 

當編譯(乾淨後,試圖解決這個問題)我有: 錯誤LNK2001:無法解析的外部符號「私人:靜態INT A_GItem :: static_index

任何想法?由於

回答

3

成員靜態變量需要初始化。您只是在頭文件中聲明瞭您的變量,但未定義它:

//A_GItem.h 
class A_GItem 
{ 
public:   
void create_item();  
private: 
    static int static_index; 
} 

//A_GItem.cpp 
int A_GItem::static_index = 0; 
2

你必須在.cpp文件一個真正定義靜態成員varible

int A_GItem::static_index;