在上一节中笔者给大家简单介绍了C++语言中的命名空间的基本概念,其主要作用是为了避免命名冲突,简化我们编写程序的过程,从而提高我们编程程序的效率。提到命名空间,通常都会联系到标准库和std命名空间的相关联的使用,那么到底什么是标准库和std命名空间呢?为此在本次的讲解中课课家笔者主要为大家介绍C++语言中的标准库和std命名空间的基本概念和应用。
众所周知,在标准C语言(ANSIC)中共定义了15个头文件,这些头文件被称为“C标准库”,相对应的所有的编译器都必须支持,具体头文件如下表所示:
我们知道早期的C++语言还不完善,不支持命名空间,也没有自己的编译器,通常是将C++代码翻译成C代码,再通过C编译器编译成目标代码。尽管这个时候的C++仍然在使用C语言库,但还是开发了一些新的库增加了不少头文件,下面笔者给大家举几个头文件代码例子,具体如下:
iOStream.h:输入输出头文件。
fstream.h:文件操作头文件。
wchar.h:宽字符处理头文件。
通过观察上面几个代码例子,我们不难发现此时C++语言和C语言一样,头文件仍然以.h为后缀,其中的类、函数等都是全局范围的。C语言的库定义了大量的函数、宏、自定义数据类型等,而C++新增的库主要定了大量的类,它们非常丰富也非常强大,对很多常用的功能进行了封装,比如链表、堆栈、树等数据结构,因此我们不需要再从头写代码,只要会使用库就可以了。
在随后的发展中C++引入了命名空间的概念,计划重新编写库,将类、函数等都统一纳入一个命名空间中(命名空间的名字是std)。但是此时已经有很多用老式C++开发的程序,它们的代码中并没有使用命名空间,如果直接修改原来的库会由于程序员不愿花费大量时间修改老式代码而导致极力反抗的情况发生,从而拒绝使用新标准的C++代码。于是C++开发人员通过保留原来的库和头文件,把原来的库复制一份,然后在此基础上稍加修改,把类、函数等纳入命名空间std下,最终完成新版C++标准库。这样共存在了两份功能相似的库,使用了老式C++的程序可以继续使用原来的库,新开发的程序可以使用新版的C++库。另外新版C++也对头文件的命名做了调整,去掉了后缀.h,比如老式C++的
①旧的C++头文件,比如
②新的C++头文件,比如
PS:在标准化的过程中,库中有些部分的细节被修改了,所以旧头文件和新头文件中的实体不一定完全对应。
③标准C头文件如
④具有C库功能的新C++头文件具有如
◎正确使用C++标准头文件
在之前我们使用了C语言的格式输出函数printf并引入了头文件stdio.h,之所以输出结果没有出现错误主要是因为C++兼容C。但实际上笔者建议大家在C++代码中还是使用回C++的头文件,不要把C和C++代码混合在一起使用,比如使用printf函数,那么相对应的要引入
#include
usingnamespacestd;
C++将标准库中的所有类、函数等都放到了命名空间std,一般在文件开头使用using关键字声明。
#include
usingnamespacestd;
classBook{
private:
floatprice;
public:
voidsetprice(floatprice1){
price=price1;
}
floatgetprice(){
returnprice;
}
};
intmain(){
floatprice;
Bookbook;
scanf("%f",&price);
book.setprice(price);
printf("Thepriceofthebookis%f.\\n",book.getprice());
return0;
}
输出结果:
68.5↙
Thepriceofthebookis68.500000.
本次初探C++标准库和std命名空间的讲解到此就暂告一段落,如果以后有什么相关的内容继续补充或者修改的话,笔者会在此继续进行相关的内容的补充或者修改的工作,同时也欢迎大家对本次的讲解提出自己的建议和补充。最后笔者希望本次的讲解对大家学习C++语言能够起到一定的帮助作用!
¥399.00
¥29.00
¥299.00
¥498.00