1

現在、lua を C++ と統合しています。lua の場合、クラスに配置した静的メソッドが必要です。クラス内のいくつかのフィールドと通信する (データを保存する) 静的メソッドが必要ですが、別の方法を試すと失敗します。こんなふうになります:

class CClass{
private:
    static int a;

public:
    static int f();
}

そして、この方法で f() メソッドを実装しようとしています:

int CClass::f() {
    a = 5;
    return 0;
}

しかし、未解決の外部シンボルでエラーが発生します。メソッドにデータをそこに保存させる方法は?

ありがとう。

4

1 に答える 1

3

ほとんどのstaticメンバーは、クラスの外部で定義する必要があります。

class CClass { 
    static int a;
    // ...
};

int CClass::a;    // in the .cpp file, not the header
于 2012-06-28T16:50:55.710 に答える