2016-11-30 4 views
-1

私は課題に取り組んでいますが、実際の課題に問題はありませんが、私は自分のコードを「適切」にしたいと思います。私は私のヘッダファイルに静的変数を定義しようとしています。このクラスのすべてのインスタンスが同じ変数にアクセスできるように静的にします。私はexternにしたくないのですが、私はこのクラスにアクセスしたいだけです。実際のファイル(ヘッダではない)に定義しようとしていますが、キャストできないというエラーが出ています。私はちょうどきれいなコードを持ってこれを正しく行う方法を学びたいと思う。ヘッダーファイルに静的フィールドを作成する| 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(); 

次回は、質問に直接ソースを追加してください。

関連する問題