如果我在源文件中包含源代码(比如定义函数,类等),那会不好?我已经读过它不推荐,但是这样做完全没问题......是否有正确的答案?
答案 0 :(得分:1)
未标记为inline
的函数不能进入标题,因为如果它们在程序中包含两次,则链接器会给出错误。请注意,类中的方法被视为内联方式。
只要您只使用模板和内联代码,就可以将代码放在标题中。但是,对于包含它的每个源文件,它会被编译一次,从而减慢构建速度。您可以使用预编译的标头来抵消这种情况,然后唯一真正的缺点是缺乏良好的“部分”标题。建筑,但整体建设表现得体面。
所以它真的归结为只编译时间,我认为预编译的头文件可以主要抵消负面影响。但我仍然喜欢适当的源文件。
答案 1 :(得分:1)
在公共头中编码公共非内联函数的一种情况是用于多处理(与多线程相反)应用程序。每个进程的代码都有一个源文件,其中包含带有这些常用函数的公共头文件。