В моем файле 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;
Здесь есть две проблемы:
Во-первых, у вас есть переменная определение в заголовочном файле. Это означает, что переменная будет определена в каждом блок перевода (примерно исходный файл со всеми включенными заголовочными файлами), где вы включаете заголовочный файл.
Вы можете иметь только одно определение каждой переменной, и должны иметь только декларации в заголовочном файле. Переместите определение в один исходный файл и вместо этого поместите объявление в заголовочный файл:
extern int food;
Вторая проблема заключается в том, что вы не можете иметь общие утверждения в глобальной области или в области пространства имен, только объявления и определения.
Вы решаете это, изменяя свое определение (то, которое у вас есть в исходном файле) на инициализировать переменная:
int food = 0;
Обратите внимание, что эта инициализация на самом деле не нужна для глобальных переменных. Компилятор позаботится о том, чтобы в противном случае неинициализированные глобальные переменные подходили для инициализации в «ноль», что для int
переменные означает, что они станут 0
,
Других решений пока нет …