2016-11-30 62 views
-1

我正在做一項任務,雖然我對實際任務沒有任何問題,但我想讓我的代碼「正確」。我想在我的頭文件中定義一個靜態變量。我希望它是靜態的,這樣這個類的所有實例都可以訪問同一個變量。我不想讓它外觀,我只想讓這個類有權訪問它。然後我試圖在實際的文件(而不是頭)中定義它,但是我一直收到關於無法投射的錯誤。我只是想學習如何正確地做到這一點,以獲得更乾淨的代碼。在頭文件|中創建一個靜態字段C++

+3

當您提出有關您的代碼導致的問題的問題時,如果您提供[代碼人員可以用來重現問題的代碼](http://stackoverflow.com/help/mcve),您將得到更好的答案。 – CAB

+3

而問題中的代碼必須是文本格式而不是圖像。 – drescherjm

+0

在實現(.cc)文件中,您需要正確地聲明變量,而不僅僅是分配給它。例如''List * AddrSpace :: availSlots = new List();' –

回答

1

你的字段的定義停留在類中:

class AddrSpace 
{ 
    List *availSpots; 
}; 

這個變量的完整名稱將是AddrSpace::availSpots。 C++需要明確定義靜態變量(包括類的靜態字段)。我不會說這是完全合乎邏輯的,因爲編譯器已經擁有了所有必要的東西。儘管如此。您的C++文件中的定義應該如下所示:

List *AddrSpace::availSpots = new List(); 

下一次請將源直接添加到問題中。

相關問題