Класс не работает со статической переменной в C ++

0

Я создал класс со статическим членом данных. Но его выполнение не выполняется даже .exe файл не создается. Я использую Visual C++ express 2010.

Вот мой код:

#include<iostream>
using namespace std;

class A
{
public: 
static int a;
};

int main()
{ 
    A::a = 10;
    cout << A::a;

    system("pause");
    return 0;
}

При компиляции я получаю следующие ошибки:
main.obj: error LNK2020: unresolved token (0A00038B) "public: static int A::a" (?a@A@@2HA)

1>main.obj: error LNK2001: unresolved external symbol "public: static int A::a" (?a@A@@2HA)

1>C:\Users\Labeeb\documents\visual studio 2010\Projects\static variables and functions\Debug\static variables and functions.exe: fatal error LNK1120: 2 unresolved externals ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Теги:
visual-studio-2010
visual-studio-debugging

1 ответ

2
Лучший ответ

Просто добавьте следующее в исходный файл:

int A::a;

static переменные-члены должны быть определены где-то, вне любой функции и после объявления класса.

  • 1
    Добавьте его вне каких-либо функций.
  • 1
    @NikBougalis Я обновил свой ответ. Для меня очень логично, но для начинающих это может быть важно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню