2012-11-11 27 views
3

可能重複:
Initializing private static membersC++:如何在類中聲明一個空的私有靜態向量?

這是真的快把我逼瘋了,我要聲明一個類我會爲一個共享內存裏面使用一個靜態的私人載體。

我的矢量的聲明是這樣的:

private: static vector< pair< string, bool > > flags; 

這是一個類的內部工作要做,但我怎麼能初始化爲空載體?如果初始化本身就在類中,最好的辦法是,因爲我需要在很多地方使用它。另一種選擇將在main(),但沒有更多。

我有setFlag()和getFlag()方法與矢量一起工作,但它給了我各種鏈接器錯誤,因爲只有聲明,沒有定義!

+0

這將是空的默認。 –

回答

6

我有一個與向量工作setFlag()和getFlag()方法,但 它給了我各種鏈接錯誤的,因爲只有 聲明,沒有定義!

你需要初始化它在類實現文件(或其他源文件):

vector< pair< string, bool > > MyClass::flags; 
+0

完美!謝謝,儘管我很奇怪能夠調用「私人」類成員,甚至是靜態成員。 –

2

你必須實現YourClass在文件中添加一個定義

vector< pair< string, bool > > YourClass::flags; 

這條線將調用默認的構造函數,它初始化一個空向量。

相關問題