包含文件中的循环依赖

时间:2014-01-20 00:17:20

标签: c++

我在文件“mtm_ex4.h”中声明了一些数据类型,我希望(实际上需要)在“fan.h”文件中使用。

问题是我在“mtm_ex4.h”中使用了一些在“fan.h”中声明的其他数据类型

如何解决这种循环依赖?

2 个答案:

答案 0 :(得分:3)

也许您“被允许”为它创建 前向声明标题 ?此类标头(例如<iosfwd>)声明类型,常量等允许使用部分/全部完整标头(例如<iostream>)功能,但某些类型可能不完整且仅可通过指针使用或参考。最好是从现有的头中包含这样的头以确保它们保持同步,并且至少那些不会引入不需要的依赖的东西(即需要支持#includes),将客户端耦合到私有的内联实现成员/职能机构),以确保一个权威的定义地点。如果您在团队或公司工作,维护主标题的团队也应该维护前向声明标题。

尽管如此,你显然仍在使用限制,所以可能不得不选择较少的邪恶......

答案 1 :(得分:2)

你可以创建类似common.h文件的东西,它将声明mtm_ex4.h和fan.h使用的类型,并使这两个文件都依赖于common.h。