Windows 10 Mobile — объявления переменных Visual C ++

В моем файле MainApp.XAML.h в скобках пространства имен у меня есть:

int food;
food = 0;

Когда я компилирую код, я получаю пару ошибок, говорящих:

Error C4430 missing type specifier - int assumed

а также:

Error C2086 'int MonsterFights::food': redefinition

но когда я гуглю, как объявить переменную, она показывает так же, как и я.

Я что-то пропустил?

—РЕДАКТИРОВАТЬ—

Так что, если мне нужно поместить мои переменные в мой файл .cpp, где я размещу их в файле .cpp?

В настоящее время у меня есть это здесь:

MainPage::MainPage()
{
InitializeComponent();
}
int food = 5;

-1

Решение

Здесь есть две проблемы:

  1. Во-первых, у вас есть переменная определение в заголовочном файле. Это означает, что переменная будет определена в каждом блок перевода (примерно исходный файл со всеми включенными заголовочными файлами), где вы включаете заголовочный файл.

    Вы можете иметь только одно определение каждой переменной, и должны иметь только декларации в заголовочном файле. Переместите определение в один исходный файл и вместо этого поместите объявление в заголовочный файл:

    extern int food;
    
  2. Вторая проблема заключается в том, что вы не можете иметь общие утверждения в глобальной области или в области пространства имен, только объявления и определения.

    Вы решаете это, изменяя свое определение (то, которое у вас есть в исходном файле) на инициализировать переменная:

    int food = 0;
    

    Обратите внимание, что эта инициализация на самом деле не нужна для глобальных переменных. Компилятор позаботится о том, чтобы в противном случае неинициализированные глобальные переменные подходили для инициализации в «ноль», что для int переменные означает, что они станут 0,

4

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

Других решений пока нет …

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