命名空间的使用
缺省参数
缺省参数只能是常数或者全局变量
缺省参数必须只在.h文件的函数声明中写,在函数定义中不得给出
引用
引用不是定义新变量,就是给已有变量取别名
编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。
函数的参数有不同的用途分为输入型参数和输出型参数
引用和指针都能解决函数有多个输出型参数的问题,如swap函数
但使用内联比指针方便直观,在swap函数传参时也不需要传入地址,直接传入即可
特别注意:引用只能引用相同类型的变量,函数的返回值默认是const(临时变量具有常性)
所以:引用不能有权限放大的问题
int it = 1;
double& rd = it;//error 临时变量具有常性
double& //不能和const double匹配
const double& re = it; //OK
解释:
赋值的过程有隐式类型转换产生中间临时double变量————const double
所以对转化类型的变量取引用本质上是对中间变量的引用
在数据结构处理链表的时候、可以引用一级指针替换二级指针
引用和指针:
引用从语法上不需要占用内存空间,但底层实现依然依靠指针,因此需要开辟内存
指针需要显示解引用,引用编译器自己处理
指针可以指向NULL,但没有NULL引用,有多级指针没有多级引用