2014-01-20 68 views
-5

我有一个文件“mtm_ex4.h”这是我想要的(真正需要)宣布几个数据类型为“fan.h”文件来使用。在循环依赖包括文件

的问题是,我使用一些其他的数据类型,其中以“fan.h”

我怎样才能解决这个循环依赖宣布“mtm_ex4.h”?

回答

3

也许您是“允许”创建正向声明标题为吗?这样的头部(例如<iosfwd>)声明类型,所使用的是允许一些/全部的完整报头的(例如<iostream>)功能常数等等,虽然一些类型可以是不完整的,只通过指针或参考使用。从现有的头文件中包含这样的头文件以确保它们保持同步,并且至少那些不会引入不需要的相关性的东西(即,需要支持#includes,耦合客户端对私有成员/函数体的内联实现) ),以确保一个权威的定义。如果您在一个团队或公司工作,维护主标题的团队也应该维护前向声明标题。

不过,你显然有限制的工作,所以可能要挑害相权取其较小....

2

你可以像COMMON.H文件,这将宣布由mtm_ex4.h和fan.h使用这两种类型,使这两个文件的依赖从COMMON.H。

+0

还有一个问题,我不允许修改“mtm_ex4.h” ...... –

+4

@Doppelganger那么你为什么不把这些关键的细节放在你的问题中? – juanchopanza

+0

原因,否则这个问题是微不足道的...... –