如何包含头文件
How do I include header file
我有一个数据包类和一个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。标头可以而且经常包含其他标头。
不幸的是,这只是对发生了什么的猜测,因为您没有提供任何源代码或确切的错误。然而,我认为这就是问题所在,因为请注意,错误行在标头中,而不是实现文件中。
相关文章:
- 如何在h文件中包含.o对象文件
- VS2017,C++包含目录与附加包含目录,子文件夹包含失败-但为什么
- 为什么您需要C++头文件的包含保护
- 包含在.cpp文件中包含在 .h 文件时包含
- CMake:我们可以为一组不形成可执行文件或库的特定文件指定包含目录吗?
- 如何在 C++ 的 .so 文件中包含库
- 在头文件上包含 cpp 文件是否有缺点?
- 我可以(不)在.cpp文件中包含哪些内容?
- 生成文件缺少包含路径 尽管路径存在并已定义
- 不能在其他文件中包含结构
- 如何比较文件中包含的下一个字符
- 如何检查每个头文件是否包含必需的包含文件?
- 使用 #pragma 一次,#ifndef 在同一文件中包含保护
- 在兼容的二进制文件中包含 CSV 文件
- .c文件应该包含它的.h文件已经包含的内容吗?
- #include 包含的头文件已包含的头文件是否常见?
- 如何告诉qmake在从dbus xml生成文件时包含标头
- cmake - 何时在 CMakeLists.txt 文件中包含include_directories
- 修改生成文件以包含库并使用 C++11
- 如何在Android.bp文件中包含预构建的库