假设您正在创建一个具有多个 .cpp 文件(每个文件包含一个成员函数的实现)的类,并且在一个 .h 文件中具有类的声明。此外,每个 .cpp 文件都通过 include 指令包含 .h 文件。
有人告诉我,如果您更改任何成员函数(.cpp 文件)的实现,则必须重新编译每个 .cpp 文件才能运行该程序。也就是说,如果我有 5 个成员函数(每个都在 .cpp 文件中实现)并且我更改了 1 个 .cpp 文件的实现,我将不得不编译我更改的 1 个 .cpp 文件和其他 4 个 .cpp 文件我没有为了正确运行我的程序而改变。
我的问题是,如果前面的陈述是正确的,那么为什么该陈述是正确的?对这个概念的任何见解都会有所帮助。
这是假的。如果特定实现文件没有更改,它包含的头文件没有更改,环境或编译器选项没有更改,则绝对不需要重新编译它。影响该文件编译的所有内容都没有改变。
事实上,您可以编译每个文件,甚至根本不需要任何其他文件。然后,您可以将所有已编译的文件链接在一起,而无需将所有实现文件都放在同一个位置。
| 归档时间: |
|
| 查看次数: |
2039 次 |
| 最近记录: |