【发布时间】:2017-08-29 18:45:27
【问题描述】:
我目前正在从一本名为 Alex Allain - Jumping into c++ 的书中学习 C++,但我被困在第 21 章。它详细介绍了 C++ 构建过程,我明白了,除了两部分:
第一:
“头文件不应包含任何函数定义。如果我们在头文件中添加了函数定义,然后将该头文件包含到多个源文件中,则函数定义将在链接时出现两次。这会使链接器感到困惑。”
第二:
“永远不要直接包含 .cpp 文件。包含 .cpp 文件只会导致问题,因为编译器会将 .cpp 文件中的每个函数定义的副本编译到每个目标文件中,并且链接器会看到多个相同函数的定义。即使您非常小心地执行此操作,也会失去单独编译节省时间的好处。”
谁能解释一下?
【问题讨论】:
-
我认为您应该阅读有关函数定义和声明之间的区别。很确定它可以解决您的问题。