目录
一、C++关键字(63个)
二、C++几个关键点:
三、C语言缺陷一:命名冲突
四、C++新概念:命名空间(namespace)
五、命名空间的嵌套:
六、展开命名空间:(using namespace std;)
七、指定展开命名空间:
八、缺省参数
一、C++关键字(63个)
二、C++几个关键点:
三、C语言缺陷一:命名冲突
情况一:我们自己写的名字跟库冲突;
情况二:我们互相之间有冲突;
四、C++新概念:命名空间(namespace)
针对C语言缺陷一,C++就提供一种解决方法:命名空间(namespace)
这样的做法类似于给全局变量rand建立一堵围墙,这样printf打印的就是库里面的rand,就不会冲突了(其中namespace是关键字去,name是个自定义的名字)。
此时我们想访问全局变量就可以加个域作用限定符,如下:
命名空间里面不仅可以定义变量,也可以定义函数、结构体等等;(注意:域作用限定符要放在结构体名称前面,不能放在struct前面)
五、命名空间的嵌套:
六、展开命名空间:(using namespace std;)
结构如下图:
这样相当于把该命名空间这堵墙给拆了,这样访问里面的东西时就不用加域作用限定符了,
注意这与展开头文件完全不同;
所以到这里我们应该就明白为什么写C++的时候都要加一句“using namespace std;”,就是把std这个命名空间给展开,std是C++官方库定义的,C++库里面的东西都在这里面,这样就可以使用里面的内容了。
七、指定展开命名空间:
在工程中我们会使用到大量的cout,cin,
若不展开std命名空间,每次使用cout的时候都需要指定,这样很麻烦;
若展开std命名空间,这样里面的内容全部暴露,会有冲突风险;
所以就可以指定展开命名空间,如下:
而平时使用的这些cout,cin,<<(插入流),>>(提取流)等等都是定义在iostream头文件中,但C++里面不需要加.h。
八、缺省参数
多用于函数传参时,如下:
就是直接给形参赋值,如果调用此函数时没有传参,则形参的值为赋的值;
若传参了,则形参的值为传参的值。
//未完待续