C++ 包含头文件 并没包含函数的实现啊

比如我写个类,有头文件,源文件,把它们都放系统目录下,然后只
#include <MyHead.h>
这里包含的是头文件,那类的实现,C++编译器怎么能知道的呢,自动找和头文件名字相同的,后戳名是cpp的文件吗?
搞不懂啊..
一楼回答的最好了,原来是先编译每个CPP,然后根据头文件找OBJ文件
二楼谢谢啦,不过我用的是VC++ 6.0,用C++语言。
三楼,按照现在的语言写法,都是一个头文件(函数定义),一个源文件(函数实现),你那样说好象不对。
四楼,一楼比你说的跟深入些
五楼,很感谢~。
遵守先到先得原则吧。

你的头文件中如果没有相关函数的实现方法,即使你包含这个头文件也是没有用的。其实头文件就是一个函数的集合体,你先把所需要的函数全部定义好,然后放在某个你自己命名的头文件中。以后只要你需要某个函数的时候你就可以直接包含这个头文件。然后直接调用你定义过的函数就行了。c++会自动在包含的头文件中寻找函数的定义(不是在你的cpp文件中寻找定义),然后执行相关的函数。如果不是放在系统目录下面你可以包含全部的路径 例如 #include"D:\\MyHead.h" 如果是在cpp文件中寻找你定义的函数,那么如果你把那个cpp文件删除了,那岂不是会有编译错误。源文件不是必须的。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-05-13

C++ 包含头文件 并没包含函数的实现是因为包含的是标准库文件的头文件。

标准库可以这样做,非标准的需要链接源文件。如果是自己编译的库文件,就需要包含库文件并且进行链接了。

示例:

#include <stdio.h>
#include "..\lib.h"
#pragmacomment( lib, "..\\debug\\libTest.lib" )  //指定与静态库一起连接
int main(int argc, char* argv[])
{
printf( "2 + 3 = %d", add( 2, 3 ) );
return 0;
}

本回答被网友采纳
第2个回答  2009-02-02
你用的是 VC++6.0 吗?我对C语言研究的稍微深一点,C++我们没怎么学。对于C语言,VC 中的一些库函数是以 .c 文件的形式存放在一个文件夹下的。这个文件夹的路径是:
\Microsoft Visual Studio\VC98\CRT\SRC
例如VC++6.0默认安装在 C 盘,那么这个文件夹就在:
C:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC
这个文件夹里有一些 .C 文件和头文件,你可以打开看看,例如库函数 printf() 的函数体就存放在 printf.c 中,malloc() 的函数体就存放在 malloc.c 中......
第3个回答  2009-02-02
工程里所有cpp文件都会被编译的。这个时候找不到实现的东西会就留个空位。连接的时候在从别的cpp文件编译出的obj或者外部的lib文件里找。本回答被提问者采纳
第4个回答  2009-02-02
不是编译器,注意了
是链接器
链接的是库文件 .lib 或 .dll
.h 文件可以与 .cpp 文件搭配(编译时)
也可以与 .lib 文件搭配来组装程序(链接时)
相似回答