C++中头文件设计
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,对于小工具程序而言,用C++编写估计也就几个文件,此时很少设计头文件互相包含引发的编译出错问题。但是当软件功能越来越多,功能越来越复杂,各模块之间的调用关系也越来越不明显,此时很有可能会出现A头文件包
千家信息网最后更新 2025年12月02日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安全错误
数据库的锁怎样保障安全
黄山电力软件开发要多少钱
病患数据库系统
TIS服务器地狱
湖南农业资源大数据库
网络安全好读书手抄报一年级
网络安全弊大于利的事例
游戏登陆服务器
华为nova数据库
恢复exchange数据库
校园网络安全事件追究责任制
超梦境激斗服务器互通吗
云游戏都哪里有服务器
山东省网络安全进校园
自然资源厅网络安全责任制
nosql数据库的新数据模型
jabber 服务器
数据库中表名.是什么意思
不需安装 数据库
工科论文查找常用数据库
培训软件开发软件工程师
尧都区软件开发公司
萍乡服务器回收公司
app软件开发制作品牌
微信服务器的成本是多少
苏州恒互联网科技有限公司
哈尔滨工程大学网络安全研究生
延安精益管理软件开发
计算机网络技术自学体会
最流行的数据库持久层框架
网络安全心得1500