什么是“引用”?申明和使用“引用”要注意哪些问题?
引用即建立某个目标变量的别名,对该引用进行操作即是对目标变量本身的操作。系统不会给引用分配存储单元。将“引用”作为函数参数有哪些特点?
使用引用传递函数的参数,在内存中并没有产生实参的副本,它是直接对实参操作。- 在什么时候需要使用“常引用”?
如果既要利用引用提高程序的效率,又要保护传递给函数的数据不在函数中被改变,就应使用常引用。
int a;
const int &ra =a;
ra = 1;//error!
a = 1; //right
如下实例:
string foo();
void bar(string &s);
bar(foo())//非法
bar("hello world")//非法
原因:foo()和”hello world”串都会产生一个临时对象,而在C++中,这些临时对象都是const类型的。因此,上面的表达式就是企图讲一个const类型的对象转换为非const类型,这是非法的。
引用型参数应该在能被定义为const类型时,尽量定义为const类型。