20、C++ 多文件项目开发全解析

C++ 多文件项目开发全解析

1. 编译与链接阶段

当编译器检查没有错误后,就会进入链接阶段。目标文件知道如何执行其功能,但它们不清楚在哪里找到函数引用,无论是来自其他目标文件还是系统库。链接阶段通过解析这些引用将文件“链接”在一起,生成可执行文件。如果你使用 Visual Studio,可执行文件以 .exe 结尾;Unix 和 MinGW 则更为灵活。

myprogram.obj or .o
010011011110011
...
myclass.obj or .o
101011011010011 
...
myprogram.exe,
myprogram, or a.out
111010110001100
...
linker
System libraries
00110010001001
...

这个过程帮助我们明确哪些内容应该放入头文件,哪些不应该。

2. 头文件的编写

头文件中应该包含的内容:
- 类型,包括类定义和枚举类型
- 函数原型和内联函数

不应该包含的内容:
- 函数
- 常量或变量声明

原因在于,如果将函数(或声明)放在头文件中,它会被包含到不同的 .cpp 文件中。编译这些文件时,会得到同一函数的多个副本。调用该函数时,编译器不知道使用哪个副本,也无法识别它们是相同的,从而会报错,提示有重复定义。

3. 避免重复包含头文件

假设 t

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值