Visual C ++, как дать значение статической переменной в классе?

В проекте VC ++ CLR у меня есть класс temp,
Я пытаюсь установить статическую переменную temp1 на 5.
Я получаю ошибку компиляции:

Ошибка 32, ошибка LNK2020: неразрешенный токен (0A0005FB) «public: static
int temp :: temp1 «(? temp1 @ temp @@ 2HA) C: \ Users \ user100 \ Documents \ Visual
Studio 2012 \ NewProject 32 бит \ создать мин бары из data2 \ создать мин
бары из данных \ создать мин бары из data5.obj

Ошибка 33 ошибка LNK2001: неразрешенный внешний символ «public: static int
temp :: temp1 «(? temp1 @ temp @@ 2HA) C: \ Users \ user100 \ Documents \ Visual
Studio 2012 \ NewProject 32 бит \ создать мин бары из data2 \ создать мин
бары из данных \ создать мин бары из data5.obj

Как я могу это исправить?

class temp
{
public:
static int temp1;
};

int main(array<System::String ^> ^args)
{

temp::temp1=5;
}

0

Решение

редактировать

Определите вашу статическую переменную-член

class temp
{
public:
static int temp1;
};

int temp::temp1 = 0;

// Fixed main() ;)
int main(int argc, char** argv)
{

temp::temp1=5;
return 0;
}
5

Другие решения

При объявлении статической переменной в классе память фактически не создается. Вам нужна отдельная переменная выноска, чтобы фактически сделать для нее ОЗУ. Это то, что говорит вам компилятор.

//Outside your class declaration:
int temp::temp1;
6

По вопросам рекламы [email protected]