2012-04-02 5 views
0

は、私はクラスを作成し、パブリックセクションでは、私は次のように宣言:同じ.hファイルにある、.cppファイルにクラスの静的メンバを使用して

static int num; 

とコンストラクタで、私はした:

num++; 

これまでのところすべて正常に動作します。

問題は、ある私のデストラクタの実装が.cppファイルであることを、私は書いた:

num--; 

しかし、視覚的には、私はそれを行うことはできません。それは叫ぶ:

致命的なエラーLNK1120:1つの未解決の外部

任意の助けを?

+1

質問に対処するには:任意のコード?また:あなたは静的メンバーを** ** **宣言**していない**を定義しましたか?あなたはどんな本を使っていますか? – Griwes

答えて

3

* .cppファイルで静的変数を定義する必要があります。これは通常、上部で行われます。例:

// in the *.h file 
class MyClass 
{ 
    public: 
     static int num; 
     MyClass(); 
     ~MyClass(); 
}; 

// in the *.cpp file 
int MyClass::num = 0; 

MyClass::MyClass() 
{ 
    MyClass::num++; 
} 

MyClass::~MyClass() 
{ 
    MyClass::num--; 
} 
関連する問題