2012-02-27 39 views
2

在当地一所大学为一些学生辅导之后,我被问到“什么时候最好在C++中使用头文件而不是普通的.cpp文件?”。我有点困惑于答案,并且看到在哪些情况下最好的答案是否有更明确的答案。什么时候应该使用头文件?

使用可用于多个项目的代码时,是否最适合使用头文件?我知道这是一个愚蠢的例子,但是如果你制作了可以在其他项目中反复使用的自定义数学函数,那最好放在一个头文件中是否正确?这需要从多个.cpp文件访问

+1

看看[这个](http://stackoverflow.com/questions/1945846/c-what-should-go-into-an-h-file)和[this](http:// stackoverflow。 com/questions/333889/in-c-why-have-header-files-and-cpp-files)和[this](http://stackoverflow.com/questions/1167875/header-per-source-file)和...呃,你明白了。 – Bart 2012-02-27 15:40:06

+0

和这个:http://stackoverflow.com/questions/280033/c-header-files-code-separation – Naveen 2012-02-27 15:47:14

回答

10

任何应在头文件中得到声明的,头文件应该是#included了每一项有关.cpp文件。

这可以,例如,包括全球变量,全局函数,类等

1

头文件使的发达代码(即函数或类)一个更好的重用的声明。事实上,标准做法是始终为您定义的每个类定义.h和cpp文件。 第二个问题的答案是肯定的,如果你想重复使用你的项目中的自定义函数,你可以在.h文件中定义它的签名,并在.cpp文件中或在已经编译的dll/lib中定义它的实际实现。

1

如果一个函数,一个类或一个宏或其他东西需要重用(它可以从多个不同的文件中访问),那么一个好方法是把它放在一个头文件中,并让其他文件包含该文件。

0

标题定义了接口;源文件提供了 实现。除了非常简单的测试程序之外,您的 一般以标头—开头,并且只有在标头完成后才写入实施 。在实践中,您可能会回来修改标头 ;例如将私人成员添加到课程中。但目标是 正确定义你需要实现之前实现 它,这就是标题的作用。

另一个常见的策略是将底层文档也放在 标题中。在这种情况下,在编写标题时,首先编写 ,然后编写任何实际的C++ 代码之前,该类将执行的操作—的作用和 的责任,特别是—的描述。

0

在C++头文件用于声明,其中在大多数情况下,源文件用于定义。

如果需要在多个文件中使用类,则需要为每个文件提供类声明,在这种情况下,最好使用头文件,否则如果使用源文件,则最终会得到多个定义和最重要的是可执行文件的大小将增加。

一般来说,对每个类或有时使用一组相关类使用头文件是一种很好的做法。

相关问题