我有两个文件,包括另一个文件,我得到了奇怪的错误。
#ifndef NODE_H
#define NODE_H
#include "model.h"
etc....
#endif
#ifndef MODEL_H
#define MODEL_H
#include "Node.h"
etc....
#endif
这是我正在做的事情的示例代码。有人可以向我解释为什么这是不可能的或允许的吗?我应该做些什么来解决这个问题。
答案 0 :(得分:5)
Node
和model
之间有circular dependency。
要解决这个问题,而不是......
#include "Node.h"
...在model.h中,转发声明......
class Node;
...这样您就可以在Node& node;
Model
中拥有class
。
反之亦然。
更好的是......看看你是否可以重新审视你的设计并消除这种循环依赖。