我几天来一直在寻找解决方案。我将不再提供详细信息,只显示代码:
#include "Mesh/GEdge.h"
//class GEdge;
class GEdgeSigned
{
public:
int _sign;
GEdge *ge;
GEdgeSigned(int i, GEdge *g) : _sign(i), ge(g) {}
GVertex *getBeginVertex() const
{
return (_sign == 1) ? ge->getBeginVertex() : ge->getEndVertex();// Error here
}
GVertex *getEndVertex() const
{
return (_sign != 1) ? ge->getBeginVertex() : ge->getEndVertex(); // Error Here
}
void print() const;
int getSign() const { return _sign; }
};
基本上,我在标记的位置有无效错误。我清楚地在顶部有#include标题,当你查看标题(GEdge.h)时,没有循环引用。
但是,如果您打开GEdge.h文件中包含的其他几个头文件,最终会得到一个循环引用。
所以我的问题是,如果Edge.h包含4个文件深,这仍然是一个导致错误的循环引用吗?
如果没有,导致无效类型错误的其他一些常见问题是什么?