我只是想知道.cpp和.h文件之间的区别是什么?我将使用头文件(.h)以及我将使用cpp文件的内容是什么?
答案 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文件)也被编译。