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
超级会员免费看
订阅专栏 解锁全文
1919

被折叠的 条评论
为什么被折叠?



