另一种使用不完全类型的invlid

时间:2017-10-27 01:01:27

标签: c++

我几天来一直在寻找解决方案。我将不再提供详细信息,只显示代码:

#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个文件深,这仍然是一个导致错误的循环引用吗?

如果没有,导致无效类型错误的其他一些常见问题是什么?

0 个答案:

没有答案