В моей программе есть классы для Vertex's Edges and Faces, которые я надеюсь использовать для моделирования фигур.До этого мой класс Edge включал мой файл "vertex.h", а мой класс Face включал мой файл Edge.h.В классе Face я объявил некоторые переменные типа ребер, а в классе Edge я объявил некоторые переменные типа вершины.Все работает.Моя проблема заключается в том, что во время реализации я понял, что хочу, чтобы ребра знали о гранях, которые они объединяют, и я хотел сохранить это в ребре.Я хотел объявить указатель типа Face и в конструкторе использовать класс:
Face * joiningFaces = new joiningFaces[2];
Когда я это делаю, я получаю синтаксические ошибки, которые говорят, что Face не является типом, даже если я включаю Face.h в Edge.h включает в себя.
Существует ли какая-то иерархическая система, которая мешает мне включать Edge в Face, а также Face в Edge?или я делаю что-то глупое?
=== Код ====
=== edge.h ===
#ifndef EDGE_H_
#define EDGE_H_
#include "Vertex.h"
#include "Face.h"
class Edge {
private:
Vertex a;
Vertex b;
Face * joinsFace;
public:
Edge();
Edge(Vertex newa, Vertex newb);
...ect
};
=== Лицо.h ===
#ifndef FACE_H_
#define FACE_H_
#include "Edge.h"
class Face {
private:
Edge a;
Edge b;
Edge c;
public:
Face();
Face(Edge newA, Edge newB, Edge newC);
virtual ~Face();
Edge getEdgeA();
Edge getEdgeB();
Edge getEdgeC();
};
#endif /* FACE_H_ */