zoukankan      html  css  js  c++  java
  • 【转】为什么赋值操作符函数的参数为const引用,返回值为引用

    为什么赋值操作符函数的参数为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

  • 相关阅读:
    Navigator对象
    Location对象
    History 对象
    计时器用法
    window对象
    某班的成绩出来了,现在老师要把班级的成绩打印出来,和 显示当前时间
    牛客练习赛14A(唯一分解定理)
    贪心法(举例子强行凑规律)
    线性筛(欧拉筛法)
    欧拉函数
  • 原文地址:https://www.cnblogs.com/engraver-lxw/p/7580598.html
Copyright © 2011-2022 走看看