我有一个数据包类和一个数据包类。
在数据包工厂类中,它包含packet.h文件,在数据包类中包含packetfacotry.h文件。
然后我在packetfactory.h文件中收到错误“数据包没有命名类型”。
我该如何解决这个问题?
提前致谢。
答案 0 :(得分:2)
2种方式:
首先,您可以在packetfacotry中#include "packet.h"
和#include "packetfacotry.h"
。不要忘记保护标题。
其次,如果你有一个循环包含juste在你的“packetfacotry.h。文件中添加class packet;
,反之亦然。
它声明了预处理器的符号。
那么?
答案 1 :(得分:0)
看起来非常常见的循环依赖问题,你可以搜索循环依赖和pImpl,有很好的答案。
答案 2 :(得分:0)
如果packetfactory.h引用了packet.h中描述的数据包类,那么你需要让packetfactory.h本身包含packet.h。标题可以并且经常包含其他标题。
不幸的是,这只是猜测发生了什么,因为您没有提供任何源代码或确切的错误。我假设这是问题,但是因为提到错误行在标题中,而不是实现文件。