为了使一些代码更容易阅读,我将它分成几个文件。其中一个文件只包含2个初始化方法。是否值得创建一个.h与这些方法的声明,包括那个,或者我应该直接包括.cpp,仅仅2个方法,是否值得符合标准?
答案 0 :(得分:3)
你永远不应该包含cpp文件,无论其中包含多少定义:其他几个cpp文件中包含的每个定义都会产生重复的符号,从而导致链接错误。
如果您构建了一个在多个翻译单元中使用的类(这是cpp文件的奇特名称),您应该为它构建一个标题。模板没有cpp文件 - 只需要一个标题。
虽然通常的做法是为每个类创建一个cpp / header对,但是可以在一个翻译单元中包含多个相关的类,并将所有声明放在一个标题中。
答案 1 :(得分:1)
如前所述,您不包含.cpp文件。如果项目周围需要您的代码,那么标题是必须的。但是,您也可以使用extern。 http://www.cplusplus.com/forum/general/21368/
答案 2 :(得分:1)
您包含的.cpp
个文件是一个名不副实的.h
文件。
.cpp
和.h
是对程序员有意义的扩展(以及工具链中的偶然工具)。如果你开始#include
.cpp
个.cpp
文件,即使你说服你的工具链如何处理它,你也会混淆其他程序员(包括你自己几个月/几年)。
有时,只能创建一个头文件集的工具或函数。调用该文件{{1}}不是。