С++ отсутствует спецификатор типа и неизвестный спецификатор переопределения
У меня есть 3 класса, которые были созданы
Класс карты
#ifndef MAP_H #define MAP_H #include "position.h" #include "Entity.h" #include <iostream> #include <windows.h> #include <ctime> #include <iostream> class Map { private: char mapSize[21][21]; public: Map(); ~Map(); }; #endif
Класс сущностей
#ifndef ENTITY_H #define ENTITY_H #include "Map.h" class Entity { position pos; public: Entity(); ~Entity(); }; #endif
класс должности
#ifndef POSITION_H #define POSITION_H #include "Map.h" class position { public: int x; int y; position(); ~position(); }; #endif
Похоже, что источник ошибки находится в entity.h, а именно в строке
position pos;
Эти классы, когда они скомпилированы вместе, дают мне две ошибки
1) C4430 - отсутствует спецификатор типа - предполагается int. Примечание: C++ не поддерживает default-int
2) C3646 - 'pos': неизвестный спецификатор переопределения
Я хотел бы знать, что вызывает эту проблему, так как я, кажется, не могу понять, что это за проблема
Что я уже пробовал:
Первоначально, в сущности.ч у меня был в комплекте установки.h также, но я удалил его, думая, что map.h вызывает петлю. Очевидно, нет.
К ВАШЕМУ СВЕДЕНИЮ:
position pos;
был определен публично и раньше, но это все равно не сработало
Rick York
Карстенк прав, но почему они включают Map.h? ни в одном из этих классов нет экземпляров карты, поэтому им это не нужно.