如何包含头文件

How do I include header file

本文关键字:文件 何包含      更新时间:2023-10-16

我有一个数据包类和一个packetfactory类。

在数据包工厂类中,它包括packet.h文件,在数据包类中,包括packetfacotry.h文件。

然后我在packetfactory.h文件中得到一个错误"数据包没有命名类型"。

我该如何解决这个问题?

提前谢谢。

两种方式:

首先,您可以在packetfacotry中使用#include "packet.h",也可以使用#include "packetfacotry.h"。不要忘记保护你的头部。

其次,如果您有一个循环包含,只需在"packetfacotry.h"文件中添加class packet;即可,反之亦然。它为预处理器声明符号。

那么呢?

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

如果packetfactory.h指的是在packet.h中描述的一个数据包类,那么您需要让packetfactory.h本身在早期包含packet.h。标头可以而且经常包含其他标头。

不幸的是,这只是对发生了什么的猜测,因为您没有提供任何源代码或确切的错误。然而,我认为这就是问题所在,因为请注意,错误行在标头中,而不是实现文件中。