C++中头文件设计
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,对于小工具程序而言,用C++编写估计也就几个文件,此时很少设计头文件互相包含引发的编译出错问题。但是当软件功能越来越多,功能越来越复杂,各模块之间的调用关系也越来越不明显,此时很有可能会出现A头文件包
千家信息网最后更新 2025年01月24日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安全错误
数据库的锁怎样保障安全
开封服务器维保
oracle数据库开发大全
云服务器javaweb项目
java访问数据库的技术是
如何导入数据库文件
信息网络安全法律法规宣贯
知识搜索软件开发
软件开发费用需要摊销
电信服务器怎么连接移动网络
WPF服务器文件管理系统
win ftp服务器
11月2日网络安全法
网络安全工作动员讲话
正规网络技术分类五星服务
dryad 数据库
经济技术开发区倾贺网络技术
心跳包会不会增加服务器压力
质量好的服务器机箱
打对方电话怎么显示服务器出错
ip软件服务器管理系统
软件开发对应大学专业
法律上的数据库
手游斗地主需要服务器吗
网络技术引言
宁夏 网络安全执法
手机里的网络安全是什么
山东服务器机柜哪家专业
上海无线网络技术创新服务
数据库哪两种
宁波软件开发工作好找吗