我正在阅读一些c++代码,并注意到在头文件和.cpp文件中都有“#include”。我想如果我将文件中的所有“#include”(例如foo.cpp)移动到其头文件foo.hh中,而让foo.cpp仅包含foo.hh,则代码无论如何都应该工作,而不考虑诸如此类的问题缺点,效率等。
我知道我的“突然之间”的想法一定程度上是一个坏主意,但是它的确切缺点是什么?我是C++的新手,所以在我自己回答这个问题之前,我不想读太多C++书。因此,请将问题放在这里以寻求帮助。提前致谢。
最佳答案
通常,在可能的情况下,请将包含的内容放在.cpp文件中,而在不可能的情况下,仅将其包含在.h文件中。
在许多情况下,您可以使用forward declarations消除从其他 header 中包含 header 的需要:这可以帮助减少编译时间,随着项目的增长,编译时间可能成为一个大问题。这是一个早日习惯的好习惯,因为在以后某个日期(已经存在问题的情况下)进行尝试可能是一场噩梦。
该规则的异常(exception)是模板类(或函数):要使用它们,您需要查看完整的定义,这通常意味着将它们放在头文件中。
关于c++ - “include”应该放在C++的什么地方,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2297567/