头文件中的源代码
Source code in header files
如果我在头文件中包含源代码(如定义函数,类等)是不好的吗?我读到过不建议这样做,但也完全可以这样做……有正确答案吗?
未标记为inline
的函数不能进入头文件,因为如果它们在程序中被包含两次,链接器会给您一个错误。请注意,类中的方法被视为内联的。
只要你只使用模板和内联代码,你就可以把你的代码放在头文件中。但是,对于包含它的每个源文件,它都会编译一次,从而减慢构建速度。你可以用预编译的头文件来解决这个问题,那么唯一真正的缺点就是缺乏良好的"部分"构建,但构建总体上表现不错。
所以它真的归结为只是编译时间,我认为预编译头可以抵消大部分的负面影响。但是很多时候我还是更喜欢合适的源文件
将常见的非内联函数编码在公共标头中的一种情况是用于多处理(而不是多线程)应用程序。每个进程的代码都有一个源文件,其中包含带有这些通用函数的通用头文件。
相关文章:
- 如何在源代码中包含外部库的头文件?
- 为什么将函数体放置在单独的源代码文件而不是标题中的C/C 中
- C++程序行为取决于源代码文件集
- 尽管进行了设置,Visual Studio仍无法打开源代码文件
- 无法打开源代码文件 "afxwin.h" / "afxext.h" / "afxdisp.h" / "afxdtctl.h" / "afxcmn.h" /afxdisp.h 等
- Qt自动生成的表单提供了错误的源代码文件路径
- 带有多个MySQL源代码文件的GDB
- 可视化 如何在项目中使用多个C++源代码文件
- 如何标记c++源代码文件(转换为标记序列)
- 如何在Visual Studio中的项目之间共享C++源代码文件
- 如何?:将cv::Mat定义为类成员,然后在源代码文件中对其进行修改
- 使用大型源代码文件的IDE建议
- Intellisense不能开放源代码文件"*.h"
- Visual Studio 2010 - 无法打开源代码文件 <QtGui/QApplication>
- 为什么致命错误C1083:不能打开源代码文件(vc++)
- 智能感知:无法在C++中打开"curl.h"的源代码文件
- 用于比较给定两个源代码文件的同一c++函数的两个版本的工具
- 如何在Makefile中根据多个源文件各自的头依赖关系构建多个源代码文件
- 我怎么能把这个qt程序到一个源代码文件
- Visual Studio 2012始终编译所有源代码文件