Ошибка при объявлении класса
Есть два заголовочных файла task.h и engine.h в первом объявляется класс Pyramid
#ifndef TASK_H
#define TASK_H
using namespace std;
class Pyramid {
private:
Polygon *polygons;
public:
Pyramid(const char* file_name);
~Pyramid();
};
#endif
Во втором объявляется класс Polygon
#ifndef ENGINE_H
#define ENGINE_H
class Polygon {
private:
int count;
double** coordinate;
public:
Polygon(int count, double **arr);
~Polygon();
};
#endif
В cpp файлах написаны реализации этих классов. При компиляции появляется ошибка error: 'Polygon' does not name a type. Понимаю, что проблема заключается в создании экземпляра класса Polygon в объявлении класса Pyramid. Не знаю как решить данную проблему.
Подключение обоих заголовочных файлов происходит в main.cpp
#include "graphics.h"
#include "engine.h"
#include "task.h"
using namespace std;
int main() {
return 0;
}
Ответы (1 шт):
Автор решения: NunOfIt
→ Ссылка
engine.hpp
#ifndef ENGINE_H
#define ENGINE_H
class Polygon {
private:
int count;
double** coordinate;
public:
Polygon(int, double**);
~Polygon();
};
#endif
task.hpp
#ifndef TASK_H
#define TASK_H
class Polygon;
class Pyramid {
Polygon* polygons;
public:
Pyramid(const char*);
~Pyramid();
};
#endif
main.cpp
#include "engine.hpp"
#include "task.hpp"
using namespace std;
int main() {
return 0;
}