2013-09-27 143 views
-1
class A { 
public: 
    static int i; 
    static int inc(); 
}; 

int A::inc() { 
    i++; 
    return i; 
} 

int main() { 
    A::inc(); 
} 

正如我們所知,我們可以從靜態方法訪問靜態成員變量。 但是這個代碼是給我一個錯誤從靜態函數獲取靜態變量C++

"A::i", referenced from: 
    A::inc()  in ccn8PKhC.o 
ld: symbol(s) not found for architecture x86_64 

可以有一個人請告訴我,我失去了

回答

5

這是一個連接錯誤。你已經聲明瞭變量,但是你還沒有定義它,所以鏈接器找不到它。在.cpp文件某處全球

int A::i = 0; 

(外類和任何函數)來定義它:

添加此。如果您的項目中有多個.cpp文件,則該定義僅需要其中的一個。

+0

感謝它工作 –