我应该总是将我的文件拆分为声明(.h)和定义(.cpp)

时间:2013-07-15 20:22:28

标签: c++ split

为了使一些代码更容易阅读,我将它分成几个文件。其中一个文件只包含2个初始化方法。是否值得创建一个.h与这些方法的声明,包括那个,或者我应该直接包括.cpp,仅仅2个方法,是否值得符合标准?

3 个答案:

答案 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}}不是。