开发者社区> 问答> 正文

c++的运算符重载 operator前&是必要的吗 有什么作用吗 求解

c++的运算符重载 operator前&是必要的吗 有什么作用吗 求解 谢谢各位
同问0 |浏览449|

展开
收起
a123456678 2016-03-06 10:54:33 4748 0
4 条回答
写回答
取消 提交回答
  • 非必须,减少调用时的构造和拷贝消耗

    2020-08-03 20:12:19
    赞同 展开评论 打赏
  • 软件开发,安全加密

    运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现相应的运算。也就是说,运算符重载是通过定义函数实现的。运算符重载实质上是函数的重载。重载运算符的函数一般格式如下:

    函数类型 operator 运算符名称 (形参表列)
    {
    对运算符的重载处理
    }
    不是必须的
    有&是引用,调用;有可能改变其后变量的值;
    无&,其后的变量仅仅参与运算,不会改变其值

    2019-07-17 18:54:15
    赞同 展开评论 打赏
  • 乐于学习与分析

    运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现相应的运算。也就是说,运算符重载是通过定义函数实现的。运算符重载实质上是函数的重载。重载运算符的函数一般格式如下:

          函数类型 operator 运算符名称 (形参表列)
          { 
          对运算符的重载处理
          }

    不是必须的
    有&是引用,调用;有可能改变其后变量的值;
    无&,其后的变量仅仅参与运算,不会改变其值


    运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现相应的运算。也就是说,运算符重载是通过定义函数实现的。运算符重载实质上是函数的重载。重载运算符的函数一般格式如下:

    函数类型 operator 运算符名称 (形参表列)
    {
    对运算符的重载处理
    }
    不是必须的
    有&是引用,调用;有可能改变其后变量的值;
    无&,其后的变量仅仅参与运算,不会改变其值

    2019-07-17 18:54:15
    赞同 展开评论 打赏
  • &表示返回值类型是引用
    什么时候需要返回引用, 基于两点
    第一是需求, 有些情况语法要求必须返回引用
    比如重载=操作符, 返回引用才可写出 a1=a2=a3这样的语句
    再如[]操作符, 返回引用才能实现这样的语句: a[0]=1;

    第二是效率问题:
    很多情况是不需要返回引用的, 比如双目的+, 可以是返回一个对象的副本, 但是返回引用比返回对象的副本效率要高, 因为返回副本最少要有两次拷贝构造被调用, 对于一个体积比较大的类来说, 时间上的开销还是要考虑的. 所以这时常用返回const引用来代替返回副本.

    2019-07-17 18:54:15
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
使用C++11开发PHP7扩展 立即下载
GPON Class C++ SFP O;T Transce 立即下载
GPON Class C++ SFP OLT Transce 立即下载

相关实验场景

更多