私はインターネットを検索し、非静的メンバー関数が静的メンバー関数または静的メンバー関数にアクセスできると言った人がいることが分かりました。それから、私はそれを確認するプログラムを書いた。非静的メンバー関数は静的メンバー関数またはデータにアクセスできますか?
#include <iostream>
class test
{
public:
static int a;
void printa()
{
std::cout<<a;
}
};
int main(int argc, const char * argv[])
{
test m;
m.printa();
return 0;
}
このコードはリンカのエラーを生成します。クラス内部static
などの変数の宣言は
Undefined symbols for architecture x86_64:
"test::a", referenced from:
test::printa() in main.o
が重複する可能性をのhttp://のstackoverflow。コム/質問/ 8612206 /リンカ・エラー時に、使用して静的メンバー) – AnT
ここで同様の問題とその解決策は です[ここ] [1] [1]:のhttp:// stackoverflowの.com/questions/8034568/undefined-symbols-for-architecture-x86-64-which-architecture-should-i-use – Uahmed
の可能な複製[プライベート静的メンバーの初期化](http://stackoverflow.com/questions/185844)/initializing-private-static-members) –