1.引用就是一个别名,当声明一个引用时,就必须把它初始化为另一个对象名,也就是目标。声明格式如下:
int &rSomRef = someInt;
对引用的操作等同于对原对象的操作。
2.对引用进行取址运算,返回的值是目标的地址,因为引用只是目标的别名。
3.引用不能够被重新赋值。若对引用重新赋值就相当于对目标重新赋值。
引用只能是对对象的引用,而不能是对类或类型的引用。
引用不能为空,即不能像空指针一样被赋为零。
4.使用引用传递参数,不是在函数的作用域中创建一个拷贝,而是直接把原对象传递给函数。因此在函数中对引用的改变也会反映到函数外。
5.指针声明的函数: void swap(int *x , int *y);
引用声明的函数: void swap(int &x , int &y);
6.若要确保被传递的引用参数不被改变,则使用const指针或引用来传递。如:
const Cat& Function(const Cat& theCat);
7.在同一个参数列表中同时使用引用、指针及采用值传递是合法的。
要避免将局部的对象以引用的方式返回,因为局部对象在函数作用域之外就会被删除。
对于引用,不能使用delete运算符。
8.如果被返回的对象是局部的,那么就必须采用按值传递,否则就加返回一个不存在的对象的引用。
评论