我有一个数据包类和一个数据包类。如何包含头文件
在包工厂类中包含packet.h文件,在包类中包含packetfacotry.h文件。
然后我在packetfactory.h文件中收到一个错误“包不命名类型”。
我该如何解决这个问题?
在此先感谢。
我有一个数据包类和一个数据包类。如何包含头文件
在包工厂类中包含packet.h文件,在包类中包含packetfacotry.h文件。
然后我在packetfactory.h文件中收到一个错误“包不命名类型”。
我该如何解决这个问题?
在此先感谢。
2种方式:
首先,你可以在packetfacotry #include "packet.h"
和#include "packetfacotry.h"
。不要忘记保护你的标题。
其次,如果你有一个圆形夹杂中庸之道在“packetfacotry.h添加class packet;
。文件或反之亦然。 它定义符号预处理。
所以?
它看起来像很常见的循环依赖问题,你可以搜索循环依赖和pImpl,有很好的答案。
如果packetfactory.h引用packet.h中描述的数据包类,那么您需要早点使packetfactory.h本身包含packet.h。标题可以并经常包含其他标题。
不幸的是,这只是猜测发生了什么,因为您不提供任何源代码或确切的错误。我假设这是问题,但是因为提到错误行在标题中,而不是实现文件。
我们展示一个精简版本如果可以的话你的文件。我不知道很多C++,但你可能需要一个前瞻性的类声明。 – cnicutar