Я новичок в C++, и я пытаюсь изучить различные варианты использования статического ключевого слова, я читал, что один из них — определить статическую переменную внутри класса и вызвать ее с помощью оператора области видимости. Я пытался использовать это, но 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 (чтобы было понятнее):
Мой вопрос: как я могу получить доступ к статической переменной, объявленной внутри класса? Возможно ли это без использования функции-члена?
int Vehicle::temp;
после определения класса. - person jrok   schedule 24.04.2013