首先看百度百科:

那么这个库到底是什么?总感觉很神秘、和我们平常写的程序不一样,摸不着看不见的感觉。

下面我们就通过vs2010来定位这些神秘的c++库。看看他们到底长啥样~


首先 编写一个最简单的helloworld程序。

让光标放在iostream上,点击右键,点击“打开文档<iostream>”,

就打开了这个所谓的iostream库了,如果还嫌不够具体明白,那么可以:

 右键上图红框,点击“打开所在的文件夹”。

可以看到,iostream就是一个普通文件,没有后缀名,但是我们可以通过记事本打开,实际上有没有后缀名并无任何影响,只不过windows通过后缀名来分配打开软件而已。所以可以认为这个iostream就是一个纯文本文件,从这个意义上说,和我们自己写的.cpp并没有区别,他和其他库文件被放在一个合适的目录下,当我们在程序中将其名称include之后,ide就会将其内容替换成为实际的纯文本,这样就相当于在每一个用到的程序中,都重写了一遍程序库,换句话说,我们可以不include,我们可以手动将#include的内容(例如本例中的iostream内容)复制到helloworld的最前面,这样我们同样可以运行helloworld。

实际正是如此,于是你可能觉得自己可以手写一个iostream了?以后不用include了?但是当你准备开始造轮子的时候,会突然发现这个iostream库里面也#include了别的库,例如istream,而istream里面又include了ostream,依次往下,也就是说一个库的编写可能使用了多个别的库,每次使用都要include,所以这就形成了越来越完善、越来越方便的库。

到这里,很容易发现其实所谓的库,和我们普通的代码没有任何区别,这也是为什么我们经常也会写一个.h和.cpp然后自己include一下,我们写程序,其实最终在逻辑上,是要的 “一个” 代码文件,一个程序,如何将实际上的多个文件集成到一起呢?就是通过include。我一个#include<iostream>,就可能将几万行代码都包含到我这个helloworld里面了。如果是我自己写的100行的工具类,我自己在另一个文件中#include一下,从最终效果上说就是将这100行的代码复制到了这个文件中。

所以说#include是很重要的,也体现了一门语言的博大精深。

最后,iostream是什么?

我用最浅显但不一定准确的话来说就是: iostream是一个由C++大佬们写好的、公认的、通用的代码文件,利用它可以实现一些输入输出相关的功能。而实现的过程,可能又使用了一些其他(可能包括自己)大佬们写好的、公认的、通用的代码。如此迭代下去,直至最原始的代码,可能有汇编、C语言等。

以上其实只是介绍了C++库的概念。

一个很容易想到的问题是: 上面所述似乎只涉及.cpp文件,那么.h文件起到了什么作用呢?这个我暂时也没太懂,准备研究一下,如果有大佬给出合适易懂的教程就太感谢啦~

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐