0

可能重复:
在 C++ 中为什么有头文件和 cpp 文件?

我正在阅读一些关于创建基本等离子小部件和其他 QT 东西的 KDE 教程。我注意到的一件事是几乎所有程序都有一个.h.cpp包含在 cpp 文件中的头文件。

我得到的基本信息是最小化文件中的混乱并使代码更具可读性。

我的问题是我应该在 .h 文件和 .cpp 文件中放入哪些内容来编写程序,以及它将如何使我在改进代码方面受益。

例如 - 我创建了 3 个文件,add.h、add.cpp 和 pass.cpp - 现在 add.h 具有该功能,而其他 2 个具有定义。

添加.h

#include <iostream>

using namespace std;

int add (int x,int y);

添加.cpp

#include "add.h"

int main() {

    add (int x, int y) {

    int z = x+y;

    cout<<"Add is "<<"\t"<<z;

    }
return 0;
}

通过.cpp

#include "add.h"


add (3,4);

但是,这不起作用,从这里的答案来看 Why have header files and .cpp files in C++?

add.h 的内容会自动复制,但我得到了几个错误。

4

3 回答 3

3

主要原因是您可以包含来自多个 .cpp 文件的 .h 以促进跨模块/类的代码共享。

对于一个非常简单的应用程序(例如“hello world”,这是真的。拆分为 .cpp 和 .h 并没有太多好处)

于 2012-09-02T10:09:43.857 回答
2

您经常需要.cpp从其他翻译单元访问您在文件中定义的内容 - 其他翻译单元需要知道他们可以访问什么,因此需要在其他翻译单元中声明这些内容。将声明放在头文件中意味着您可以将它们包含在另一个翻译单元中,而不是在需要访问声明元素的每个翻译单元中复制它们。

于 2012-09-02T10:09:22.867 回答
2

将所有函数完全写在你的".cpp"文件中,然后首先将它写在你的程序中。在你的".h"文件中,只写proptype,即你的函数的声明。".h"在程序结束时制作此文件。并且不要忘记在每个函数原型的末尾写一个分号(;)。

这是一种很好的编程实践,它使您可以在这些单独的文件中编写一次代码,并在整个项目或任何其他数量的文件中使用它们的代码。

假设你有一个文件"myProgram.cpp"myProgram.h你可以在任何程序的开头包含这一行来使用它的代码。 #include "myProgram.cpp".

当您的文件中有许多函数和声明时,它会很好地工作。如果您有一小段代码,则无需创建这些单独的文件。

于 2012-09-02T10:11:16.943 回答