在什么时候需要使用“常引用”? 

如果既要利用引用提高程序的效率,又要保护传递给函数的数据不在函数中被改变,就应使用常引用。常引用声明方式:const 类型标识符 &引用名=目标变量名;

例1

int a; const int&ra = a; ra = 1; // 错误a = 1// 正确

 

例2

string foo( ); void bar(string&s)// 那么下面的表达式将是非法的:
bar(foo( )); bar("hello world");

原因在于foo( )和"hello world"串都会产生一个临时对象,而在C++中,这些临时对象都是const类型的。因此上面的表达式就是试图将一个const类型的对象转换为非const类型,这是非法的。

引用型参数应该在能被定义为const的情况下,尽量定义为const 。

 

总结:

1.利用引用提高程序的效率,但是不希望被引用的数据在函数等调用中被改变,参数类型要设置为const 类型。

2.当函数的参数有可能是临时数据的时候,函数的参数设为const 类型,能正常的兼容常量作为参数传递的问题。

 

posted on 2013-12-29 13:09  meaningful  阅读(1727)  评论(0编辑  收藏  举报