Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么要在c+中创建abc.h和abc.cpp文件+;节目?_C++_Header Files - Fatal编程技术网

C++ 为什么要在c+中创建abc.h和abc.cpp文件+;节目?

C++ 为什么要在c+中创建abc.h和abc.cpp文件+;节目?,c++,header-files,C++,Header Files,可能重复: 我正在阅读一些KDE教程,以创建基本的plasma小部件和其他QT内容。我注意到的一点是,几乎所有的程序都有一个.h和.cpp,头文件包含在cpp文件中 我得到的最基本的东西是尽量减少文件中的混乱,使代码更具可读性 我的问题是,在编写程序时,我应该在.h文件和.cpp文件中放入哪些内容,以及这些内容将如何帮助我改进代码 例如,我创建了3个文件,add.h、add.cpp和pass.cpp,现在add.h具有该函数,而其他2个具有定义 Add.h 然而,从这里的答案来看,这是行不通的

可能重复:

我正在阅读一些KDE教程,以创建基本的plasma小部件和其他QT内容。我注意到的一点是,几乎所有的程序都有一个
.h
.cpp
,头文件包含在cpp文件中

我得到的最基本的东西是尽量减少文件中的混乱,使代码更具可读性

我的问题是,在编写程序时,我应该在.h文件和.cpp文件中放入哪些内容,以及这些内容将如何帮助我改进代码

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

Add.h

然而,从这里的答案来看,这是行不通的


add.h的内容被自动复制,但我有几个错误。

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

主要原因是您可以包含多个.cpp文件中的.h,以促进模块/类之间的代码共享


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

将所有函数完全写在你的
“.cpp”
文件中,然后首先将其写在你的程序中。 在
“.h”
文件中,只编写proptype,即函数的声明。将此
“.h”
文件放在程序末尾。不要忘记在每个函数原型的末尾写一个分号(;)

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

假设您有一个文件
“myProgram.cpp”
myProgram.h
,您可以在任何程序的开头包含这一行来使用其代码。
#包括“myProgram.cpp”


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

因此意味着声明部分在.h中,主体部分在.cpp中。如果我用int add(intx,inty)方法创建一个a.h文件会怎么样;然后在2个cpp文件中包含相同的方法。如果一个CPP文件传递参数到函数,另一个添加它,HO将能够控制最终输出(在编译时)。您只能定义一次函数。若你们按照你们说的做,编译器会给你们多定义错误。。。!!!我的意思是在头文件中定义add函数,然后创建函数的多个定义,如-在b.cpp中,我将参数传递给函数,在c.cpp中,我创建主体函数,并使用add函数进行所有添加。那么,在这种情况下,我如何确保先调用b.cpp,然后调用c.cpp,以便正确地进行数据解析呢?我已经用我的问题编辑了主要帖子。请务必注意@codingmashWell您以错误的方式声明了函数。我不能在评论中给你看。如果你来这里,我很乐意帮助你学习语法。
#include <iostream>

using namespace std;

int add (int x,int y);
#include "add.h"

int main() {

    add (int x, int y) {

    int z = x+y;

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

    }
return 0;
}
#include "add.h"


add (3,4);