C++中头文件设计
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,对于小工具程序而言,用C++编写估计也就几个文件,此时很少设计头文件互相包含引发的编译出错问题。但是当软件功能越来越多,功能越来越复杂,各模块之间的调用关系也越来越不明显,此时很有可能会出现A头文件包
千家信息网最后更新 2026年11月01日C++中头文件设计
对于小工具程序而言,用C++编写估计也就几个文件,此时很少设计头文件互相包含引发的编译出错问题。
但是当软件功能越来越多,功能越来越复杂,各模块之间的调用关系也越来越不明显,此时很有可能会出现A头文件包含B头文件,B头文件包含A头文件的情况,这种互相包含头文件会导致出现找不到编译类型的错误。
最简单的代码如下:
A.h如下
#include "B.h"class A{ B b;}A.cpp如下
#include "A.h"class A{ ...}B.h如下
#include "A.h"class B{ A a;}B.cpp如下
#include "B.h"class B{...}如果文件是上述这种情况,则编译出现找不到类型,因为头文件中A包含了B头文件,B中又包含了A头文件,这种循环包含会导致编译出错。
解决办法
解决办法采用前置声明。
改后代码如下
A.h如下
class B;class A{ B b;}A.cpp如下
#include "A.h"#include "B.h"class A{ ...}B.h如下
class Aclass B{ A a;}B.cpp如下
#include "B.h"#include "A.h"class B{...}如果想一劳永逸呢?
对于经常用到的模块的头文件,可以统一写一份前置声明文件,将常用的声明都写入这个头文件,比如叫做includeDeclare.h,然后将其实际的头文件都放入一个文件,比如includeHeaders.h中。这样后续其他地方使用的时候,只要在头文件中引入includeDeclare.h,在实现cpp文件中引入includeHeaders.h。
文件
A.h
B.h
编译
越来越
越来
办法
功能
情况
模块
类型
C++
设计
复杂
明显
一劳永逸
之间
代码
后代
地方
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技社
互联网金融 科技
互联网 科技创业
为想互联网科技
科技互联网公司logo
开启互联网科技时代小说
科技与互联网的利与弊
贵州叶脉互联网科技有限公司所属行业
互联网科技商业
互联网科技产业特征
深圳市优智互联网科技有限公司
特约风豹互联网科技为什么扣费
互联网金融科技公司的优势
互联网科技资金流入
张召忠谈中国互联网科技
工业互联网科技创业
长沙渺峰互联网科技有限公司
河南商务圈互联网科技有限公司
广东猫王互联网科技有限公司电话
科技美学互联网 艺术
科技互联网企业
互联网为科技
互联网 科技公司
上海致骋互联网科技
互联网教育科技公司vipkid
重庆互联网医院沙龙医盟信息科技
移动互联网科技公司
阿里互联网科技企业
半导体是互联网高科技吗
互联网科技博主张洲