码迷,mamicode.com
首页 > 其他好文 > 详细

为什么赋值操作符函数的参数为const引用,返回值为引用

时间:2017-09-23 12:32:48      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:赋值操作符   .com   ext   创建   声明   来源   为什么   text   style   

为什么赋值操作符函数的参数为const引用,返回值为引用

1、返回值类型

  返回类型一般声明为类型的引用,并在函数结尾时返回实例自身的引用(即*this)。这里主要有两个原因:
(1)返回引用可以减少一次拷贝构造和析构函数导致不必要的开销,因为返回值类型不是引用,会创建一个匿名对象,这个匿名对象时个右值,获取return的值。
(2)可以实现连续赋值
 在例子中
  b=c=a;
 返回值不是引用类型也是可以的,其运算顺序
  b=(c=a);
 c得到一个右值,再将右值赋给b,所以逻辑上没有问题的。但是如果是
  (b=c)=a;
 这里将会出错,b=c后b是一个右值,所以b=a时将会出错。

2、参数

  参数声明为const且是一个引用,原因如下:
(1)const 是因为赋值运算,不希望修改原来类的状态,同时可以接受const与非const的参数
(2)引用则避免了拷贝构造函数

 

——如有不对的地方,非常欢迎给予指导!

——【感谢】资料来源于http://www.cnblogs.com/kiplove/p/6783497.html

为什么赋值操作符函数的参数为const引用,返回值为引用

标签:赋值操作符   .com   ext   创建   声明   来源   为什么   text   style   

原文地址:http://www.cnblogs.com/engraver-lxw/p/7580598.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!