私はC++が初めてで、静的キーワードのさまざまな使用法を学ぼうとしています。そのうちの1つは、クラス内で静的変数を定義し、スコープ演算子を使用して呼び出すことです。私はそれを使用しようとしましたが、Visual Studio 2012 はリンク エラーを生成します。私のコードは次のとおりです。
class Vehicle
{
public:
Vehicle(){};
~Vehicle(){};
static int temp;
};
int _tmain(int argc, _TCHAR* argv[])
{
Vehicle::temp=100;
std::cout << Vehicle::temp << std::endl;
system("Pause");
return 0;
}
エラーは次のとおりです。
1>LearningC++.obj: エラー LNK2001: 未解決の外部シンボル "public: static int Vehicle::temp" (?temp@Vehicle@@2HA)
1>c:\users\avraam\documents\visual studio 2012\Projects\LearningC++\Debug\LearningC++.exe: 致命的なエラー LNK1120: 1 つの未解決の外部
この問題の原因は何ですか?
Edit1(より明確にするため):
私の質問は、クラス内で宣言された静的変数にどのようにアクセスできますか? これはメンバー関数を使用せずに可能ですか?