+ -
当前位置:首页 → 问答吧 → 关于利用const引用避免复制

关于利用const引用避免复制

时间:2011-12-14

来源:互联网

在看《C++Primer第4版》》的时候,P203,利用const引用避免复制的问题,那页下面 注解 说的一句话:如果使用引用形参的唯一目的是避免复制实参,则应将形参定义为const引用。有点不理解,唯一目的避免复制,那就用&引用不就行了吗?为什么还要const,不明白为什么要这么说,大虾帮小弟分析一下。

作者: wangyansheng369   发布时间: 2011-12-14

引用&只能绑定到左值。如果你的实参是一个右值,那么这个函数就不能被调用了。

例:
C/C++ code

void fun(int & x)
{
return;
}
void main()
{
fun(3);//错误。
}



作者: mingliang1212   发布时间: 2011-12-14

深夜飘过~
除了可以绑定到 rvalue 以外,另外一个用处是防止一不小心把参数给改了。

作者: hpsmouse   发布时间: 2011-12-15

引用 1 楼 mingliang1212 的回复:

引用&只能绑定到左值。如果你的实参是一个右值,那么这个函数就不能被调用了。

例:
C/C++ code

void fun(int & x)
{
return;
}
void main()
{
fun(3);//错误。
}


这个例子举得好。

作者: pathuang68   发布时间: 2011-12-15

热门下载

更多