【问题标题】:C++ header files including each other包含彼此的 C++ 头文件
【发布时间】:2012-02-29 19:18:43
【问题描述】:

我有 2 个文件都包含另一个文件,但我遇到了奇怪的错误。

#ifndef NODE_H
#define NODE_H

#include "model.h"
etc....
#endif

#ifndef MODEL_H
#define MODEL_H

#include "Node.h"
etc....
#endif

这是我正在做的示例代码。有人可以向我解释为什么这是不可能或不允许的吗?以及我应该做些什么来解决这个问题。

【问题讨论】:

标签: c++ header


【解决方案1】:

您在Nodemodel 之间有一个circular dependency

为了解决这个问题,而不是...

#include "Node.h"

...在 model.h 中,前向声明...

class Node;

...这将允许您在 Model class 中包含 Node& node;

反之亦然。

更好的是...看看您是否可以重新审视您的设计并消除这种循环依赖。

【讨论】:

    猜你喜欢
    • 2013-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-10
    • 1970-01-01
    相关资源
    最近更新 更多