在C ++中拆分接口和实现的好处

时间:2010-12-10 14:41:08

标签: c++

我正在使用C ++,我正在考虑将我的函数实现放入.h。我知道.h文件用于定义,而.cpp用于实现,但是如何将所有文件拆分成标题和源代码将使我受益。好吧,如果我的目标是创建静态或动态库,当然这会产生影响,但我正在为自己创建此代码,而不是计划从中创建一个库。那么将源与定义分开还有其他好处吗?

5 个答案:

答案 0 :(得分:7)

显而易见的目标是减少耦合:只要更改头文件,任何包含的内容都必须重新编译。这可能会迅速对编译时间产生强烈的影响(即使是在一个小项目中)。

答案 1 :(得分:2)

您可以将几乎所有代码放入.h文件中,它将是仅限标题库。但是如果你想要更快的部分重新编译,或者你想将一些代码放到共享库中 - 你应该创建.cpp文件。

答案 2 :(得分:2)

根据项目的大小,它将节省您的编译时间,并且可以了解所有资源等(除非您将所有内容放在一个文件中)。

组合头文件越好,编译器应用更改所需的工作就越少。另外,查看一个小的头文件来查找一些被遗忘的参数信息比滚动一个孔cpp文件容易得多。

答案 3 :(得分:1)

另一个明显的改进是避免在每个使用它的文件中重新编译函数代码,而是编译一次并在需要时使用它。

另一个是它遵循惯例(和标准的一个定义规则),所以其他人会发现它更容易处理和理解。

答案 4 :(得分:0)

这取决于项目的规模。最多约500 LOC, 我倾向于将所有内容放在一个文件中,并使用该功能 班上的定义。除了高达约500 LOC, 我通常使用比C ++更简单的语言;像AWK这样的东西。

一旦代码变得足够大,可以提供多个来源 文件,尽可能少地放置它绝对是一个优势 在标题中,这意味着放入所有功能 源文件中的定义。并且尽快上课 变得不平凡,你可能不想要这个功能 出于可读性原因,类本身的定义。

- 詹姆斯坎泽