文章目录
- 一、C++的域作用限定符
- 1.1全局域
- 1.2限定域作用范围
- 二、C++的命名空间域
- 2.1单个命名空间的变量访问和单个不同命名空间的相同变量名的访问
- 2.2命名空间的嵌套调用
- 三、C++的流插入、流提取操作符
- 四、C++的缺省参数
- 4.1函数的全缺省
- 4.1函数的部分缺省
- 五、C++的函数重载
- 5.1函数重载的参数的个数不同
- 5.2函数重载的参数的类型不同
- 5.3函数重载时,编译器的识别
- 六.C++的引用
- 6.1C++引用时,引用的变量和被引用的变量其实是同一块空间地址相同
- 6.1C++引用在函数返回值的应用
所属专栏:C++初阶
引言
本章涵盖的知识点如下:
1.C++的域作用限定符
2.C++的命名空间域
3.C++的流插入、流提取操作符
4.C++的缺省参数
5.C++的函数重载
6.C++的引用
一、C++的域作用限定符
1.1全局域
这里的using namespace的意思是把std(C++的标准库)全部展开,此时C++里面的函数可以访问
这里的cout,endl就是std里面的函数。
在没有展开标准库时,就无法识别cout和endl
1.2限定域作用范围
如果我们要使用部分的标准库就用std::来修饰就可以访问到C++标准库,如下图
而且没一个都要修饰,不能第一个cout或者endl修饰了,第二个就不修饰了,就会出现问题
二、C++的命名空间域
2.1单个命名空间的变量访问和单个不同命名空间的相同变量名的访问
在不同的命名空间域中,里面的函数名,变量名都可以一样,因为他们限定在不同的空间作用域互不影响,所以不会产生冲突
这里的a一个在bitA的命名空间里面,bitB的命名空间里面互不影响,所以可以相同
2.2命名空间的嵌套调用
命名空间也是可以相互嵌套的,比如:
三、C++的流插入、流提取操作符
流插入的符号>>,流提取的符号<<。同时流插入和流提取操作符能够自动识别类型,不需要像C语言那样用占位符
流提取
流提取
这里的cin与C语言的scanf的用法类似,只是比c语言更加简洁了
四、C++的缺省参数
4.1函数的全缺省
如下图,Add函数里面的a和b都叫缺省参数,里面的参数都被赋值,这个叫全缺省,并且主函数中调用Add函数可以不用传参数
如果如果全缺省的函数调用中传了值(每个值都是从左向右一一对应)那么就用调用该函数中a,b的值
4.1函数的部分缺省
还是用上面那个例子,部分缺省也就是函数定义中a或者b中有一个不给值
但是这样就不行,因为定义中也没有赋值,传参中也没有给值
函数缺省值中只能从左向右缺省不能,左边缺省,右边不缺省,或者中间不缺省
五、C++的函数重载
函数重载也就是函数可以相同,但是参数的个数,参数的类型必须不同,不然就是同名函数这点与C语言判断方式不一样
5.1函数重载的参数的个数不同
5.2函数重载的参数的类型不同
5.3函数重载时,编译器的识别
打开反汇编,里面有VS识别不同的Add函数,不同的Add函数里面调用的内容不一样,编译器通过这个进行识别不同的类型(call是函数调用的意思)
六.C++的引用
6.1C++引用时,引用的变量和被引用的变量其实是同一块空间地址相同
C++的引用其实是对C语言太复杂的指针的一种简化,更方便大家使用(在C++中引用和指针都是配合使用的)
在引用的时候
这里a和b只是叫法不一样而已
6.1C++引用在函数返回值的应用
这里的两个11都是随机值