c++中 为什么 函数头写一个 然后用一个cpp去写函数主体 而且在另一个cpp中只要调用.h就可以了

他是用什么 东西把cpp 跟.h联系起来的

为什么 我在 源里面只需要 库就可以
我的库只写了函数头 函数体在cpp里面
他是怎么把三个cpp搞在一起的
源cpp里为什么可以用 X_add.cpp里写的函数头

这是跟编译相关的
比如 java c# 就没有头文件 为什么java c#就没有头文件而c++有呢
因为java c#编译成字节码 那么什么是字节码呢 简单的比喻就是把代码用zip压缩了一下然后加密 所以从java c#程序包里面拥有所有代码信息 甚至可以轻松反译出源代码
而c++就和c是一样的 翻译成机器码 翻译的成品里面只剩下了函数地址之类的东西 那么怎么调用编译出来的东东呢 这时候头文件就有用了

比如 一个cpp文件
int foo(int a){return a;}
在另一个文件里引用就要
extern int foo(int);
而头文件里面就存着这些声明追问

那我把cpp里的东西直接写到.h里有什么不同没

追答

如果你写过makefile 就知道了 编译器编译的是 cpp 而h文件是作为txt复制黏贴到cpp文件里的

追问

那vs 是怎么把好几个cpp 集合成一个exe的
我一个cpp是给.h写的一个直接调用这个 .h
那是先编译给.h写的cpp,之后在编译main
还是一块编译 在连接?

温馨提示:内容为网友见解,仅供参考
无其他回答

为什么在C++中函数要先声明然后再定义呢?
1、函数的作用域只是从定义的地方开始的。也就是说,在函数定义行之上,你是无法使用该函数的。而把函数的定义都放在主函数之前的话,程序会变得不清楚。所以在使用前只需用一行声明一下就可以了,明了。2、也许函数并不都是在一个文件里使用,这时候,如果再定义一遍,不仅显得罗嗦,而且使程序的...

C++用include包含文件的时候,为什么单独包含一个cpp文件可以成功运行...
因为你在 main.c 中 #include 了 a.cpp 和 b.cpp,这样相当于在 main.c 里面实现了一次 add() 和 sub() 函数,然后在 a.cpp 和 b.cpp 里面又同样存在这样的函数,于是就出现了函数定义了两次的问题。我怀疑你设置 codeblocks 不编译 a.cpp 了,所以 add() 函数没有报出这个错误。你可以...

...里有两个CPP文件,想在一个CPP文件里调用另一个CPP文件的计算结果,怎 ...
C++里面是有头文件的,标准的做法是:头文件里面放函数声明,cpp放函数具体实现。按照你的描述应该可以用一个.h头文件放全部函数的声明,然后在1.cpp里放一个函数,2.cpp里放另一个函数,我们把1.cpp作为程序的入口,作为数据源,在这里调用2.cpp里的函数,这个函数返回计算结果。注意,两个cpp都要...

用C++写了两个CPP文件,其中一个生成Child.exe,另个CPP使用GreateProcess...
cpp是实现文件 应该还有个头文件 .h 在已经编译的代码中载入这个头文件 就可以实现了 .h和.cpp都必须复制到你现在编译的那个文件夹 然后再添加类 从文件中找到就可以了

C++中同一个工程中的一个.cpp文件怎样调用另一个工程中的.cpp文件
include <文件名> 一般不建议这么做,把你要调用的函数,类等在.cpp对应的.h中声明,然后include该.h文件,编译的时候,所有包含该.h文件的会被单独生成中间文件,再根据实际实现链接在一起。这可以减少耦合,随便包含不是一个好习惯。

...中定义了一个类。声明了成员函数。在另一个cpp文件中定义了这些成...
class.cpp(第一行 #include "class.h" )main.cpp (第一行 #include "class.h" )在 main 中使用 这个类的时候并不需要 使用 class.cpp 文件里的定义,而实际是在使用 class.h 里的声明。不信的话你在 class.cpp 里面加一个新类 teacher 的定义,但在 class.h 里不声明,然后你看看在...

C++中引用形参的时候,函数调用为什么要放在main的外面?
反正编译器已经知道你的构造了。这放在前面的函数的第一行就称作函数的声明。后来,有人发现将所有函数的声明都放在代码前边也比较乱,假如有几百个函数看起来也烦,于是就又出现了 .h 即头文件,专门放置这类声明,然后cpp文件只要用 #include 指令包含进来就可以了,这样看起来代码更有组织一点。

C++中.CPP中的main函数为什么可以用#include头文件,这个不是预处理指令...
是预处理指令没错。所以代码不应该这么写。一些聪明的编译器会把预处理命令都摘出来先运行,但是这样写会给debug造成很大的困难。你可以想象一下,你现在有一万行代码。在第5300行你来了个#undef+#include。然后你升职了,把程序交给另一个程序猿。某日你的项目需要回收这段代码,你叫新来的那个苦逼去...

c++在一个cpp中使用另一个cpp中的类对象?
函数one之外的部分是无法访问a的。你如果 想要访问1.cpp中的a,需要使用全局变量,考虑到编译顺序的问题,你可以这样写:A & Geta(){ static A a;return a;} 在1.h中写这个函数的声明,1.cpp中写这个函数的定义。然后包含1.cpp通过Geta()就可以直接访问a了。举例: Geta().fun();...

C++中对自定义函数的声明,放main内还是外,在含类的程序中,貌似只能在...
一般放在函数外,调用之前。放在哪跟有类没类没有直接联系。实践中一般将函数声明、类的定义放在头文件中。而定义放在单独的源文件(.cpp)。如果有哪个源文件中用到了头文件中声明的函数或类,只需#include “***.h”将头文件包含进来。

相似回答