2011-07-02 61 views
-1

我有一个数据包类和一个数据包类。如何包含头文件

在包工厂类中包含packet.h文件,在包类中包含packetfacotry.h文件。

然后我在packetfactory.h文件中收到一个错误“包不命名类型”。

我该如何解决这个问题?

在此先感谢。

+6

我们展示一个精简版本如果可以的话你的文件。我不知道很多C++,但你可能需要一个前瞻性的类声明。 – cnicutar

回答

2

2种方式:

首先,你可以在packetfacotry #include "packet.h"#include "packetfacotry.h"。不要忘记保护你的标题。

其次,如果你有一个圆形夹杂中庸之道在“packetfacotry.h添加class packet;。文件或反之亦然。 它定义符号预处理。

所以?

0

它看起来像很常见的循环依赖问题,你可以搜索循环依赖和pImpl,有很好的答案。

0

如果packetfactory.h引用packet.h中描述的数据包类,那么您需要早点使packetfactory.h本身包含packet.h。标题可以并经常包含其他标题。

不幸的是,这只是猜测发生了什么,因为您不提供任何源代码或确切的错误。我假设这是问题,但是因为提到错误行在标题中,而不是实现文件。