私は、自分のクラスのインスタンスの総数を保持するpublic staticメンバを宣言しました。次のようにコードは次のとおりです。public static変数メンバにアクセスできない
class Hello {
public:
static int myCount;
void test(){
//do nothing
};
Hello(){
Hello::myCount += 1;
};
~Hello() {
Hello::myCount -= 1;
}
};
int main(int argc, const char * argv[]) {
// insert code here...
Hello *p1 = new Hello();p1->test();
Hello *p2 = new Hello();p2->test();
cout << Hello::myCount;
return 0;
}
しかし、Iコンパイル、それは言う:
Undefined symbols for architecture x86_64:
"Hello::myCount", referenced from:
_main in main.o
Hello::Hello() in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
私が間違っているところ私にはわかりません。最後にC++で作業してから数年が経ちましたので、解決策をお勧めしますか? ありがとうございます。
クラス定義外で定義します。 'int Hello :: myCount;' – songyuanyao