-1
class A {
public:
    static int i;
    static int  inc();
};

int A::inc() {
    i++;
    return i;
}

int main() {
    A::inc();
}

ご存知のように、静的メソッドから静的メンバー変数にアクセスできます。しかし、このコードは私にエラーを与えています

"A::i", referenced from:
  A::inc()     in ccn8PKhC.o
ld: symbol(s) not found for architecture x86_64

誰かが私に何が欠けているのか教えてください

4

1 に答える 1

5

これはリンカー エラーです。変数を宣言しましたが、定義していないため、リンカーはそれを見つけることができません。

これを追加:

int A::i = 0;

.cpp ファイルのグローバルな場所 (クラスと関数の外) で定義します。プロジェクトに複数の .cpp ファイルがある場合、定義はそのうちの 1 つだけに含める必要があります。

于 2013-09-27T19:24:26.877 に答える