CPP | .h文件(C ++)

时间:2010-01-02 00:29:00

标签: c++ header-files

我只是想知道.cpp和.h文件之间的区别是什么?我将使用头文件(.h)以及我将使用cpp文件的内容是什么?

7 个答案:

答案 0 :(得分:13)

总的来说,它确实可能不那么普遍:

.h (标题)文件用于多次使用的事物的声明,在其他文件中为#include d

.cpp (实施)文件适用于所有其他内容,几乎不会#include d

答案 1 :(得分:4)

从技术上讲,没有区别。 C ++允许您将代码放在任何格式的任何文件中,并且它应该可以工作。

按照惯例,您将声明(基本上是构成API的声明)放在.h文件中,并称为“标题”。 .cpp文件用于代码的实际“内容” - 实现细节。

通常,项目中的其他文件(以及其他项目,如果您正在创建库)中包含#include的头文件,因此编译器可以获得编译所需的接口。通常实现.cpp文件中的实现,因此有一个.cpp文件“填写”每个.h文件的实现。

答案 2 :(得分:2)

按照惯例,.h文件是#include的内容。 CPP文件是您添加到项目中的文件,用于编译到单独的目标文件中,然后传递给链接器。

答案 3 :(得分:1)

.h文件称为头文件。你通常把你的界面放在那里(你想要公开的东西)。 cpp文件是实际实现接口的地方。

答案 4 :(得分:1)

首先,两者都是包含C ++编译器或预处理器代码的文本文件。就系统而言,没有区别。

按照惯例,不同的文件扩展名用于指示文件的内容。在C程序中,您往往会看到.h和.c文件,而在C ++中.hpp和.cpp用于相同的目的。

第一组.h和.hpp文件称为头文件,主要包含非执行代码,例如常量和函数原型的定义。它们通过#include指令添加到程序中,不仅用于所讨论的程序或库,还用于将使用它们的其他程序或库,声明接口点和定义值的契约。它们还用于设置在编译不同操作系统时可能会更改的元数据。

第二组.c和.cpp文件包含库或程序代码的执行部分。

答案 5 :(得分:0)

如果我错了,请纠正我,

当你#include某些内容时,它或多或少会将整个包含的文件插入到带有include命令的文件中;也就是说,当我在“genericTools.cpp”中包含“macros.h”时,“macros.h”的全部内容都放在“genericTools.cpp”中。这就是为什么你需要使用“#pragma once”或其他保护措施,以防止包含相同的文件两次。

值得注意的是,模板化代码需要完全包含在您将要包含在其他地方的文件中。 (我不确定这个 - 可以从包含的文件中省略模板特化,并像普通函数一样链接吗?)

答案 6 :(得分:0)

作为实现文件的.cpp是我们的实际程序或代码。 当我们需要在代码中使用不同的内置函数时,我们必须包含.h个文件的头文件。

这些.h文件包含我们使用的内置函数的实际代码,因此我们可以简单地调用各自的函数。

因此,当我们编译代码时,我们可以看到编译的行数比我们实际编码的行数多,因为不仅我们的代码被编译,而且还有(代码)函数(包括在{{1文件)也被编译。