Я использую библиотеки allegro 5 для разработки игры на C++ в течение некоторого времени. Сегодня я получил некоторые странные ошибки:C++ Странная ошибка. Не удалось скомпилировать
У меня есть класс под названием level
. У меня есть файл заголовка levelhandler
. Вот как это выглядит:
#pragma once
#include "level.h"
level level_1;
level *currentlevel;
void initialize_levels()
{
currentlevel = &level_1;
}
Когда я пытаюсь скомпилировать его дает мне странные ошибки, такие как:
error C2086: 'int level' redefinition
error C2143: syntax error : missing ; before 'level_1'
я помню, что она может составить до этого, и я использовал currentlevel->Player.X
много раз, но теперь у меня есть много, что и дает ошибки, подобные этим:
error C2227: left of '->Player' must point to a class/struct/generic type
error C4430: missing type specifier - int assumed
заголовок, вставленный из комментария
#pragma once
#include "entity.h"
// some more includes
class level {
public:
enum Tileset { ... };
enum Tile { ... };
int tiles[200][200];
player Player;
level(void);
~level(void);
};
Возможно, вы забыли; после определения класса в файле заголовка. Я получил почти те же ошибки с тестовой программой, где; отсутствует: http://rise4fun.com/Vcpp/Jd7 – Vincent
Может быть, заголовок объявляет 'уровень' внутри пространства имен? –
Нет. Заголовочный файл не является частью какого-либо класса. Однако он может определить класс. Вы покажете файл заголовка 'level.h'? – harper