运算符重载(一)

运算符重载

  • 运算符重载允许把标准运算符(如+、-、*、/、<、>等)应用于自定义数据类型的对象
  • 直观自然,可以提高程序的可读性
  • 体现了C++的可扩充性
  • 运算符重载仅仅只是语法上的方便,它是另一种函数调用的方式
  • 运算符重载,本质上是函数重载
  • 不要滥用重载、因为它只是语法上的方便,所以只有在涉及的代码更容易写、尤其是更易读时才有必要重载。

成员函数重载

  • 成员函数原型的格式:
    • 函数类性 operator 运算符(参数表);
  • 成员函数定义的格式:
    • 函数类型 类名::operator 运算符(参数表){函数体;}
      在这里插入图片描述
      在这里插入图片描述

非成员函数重载

  • 友元函数原型的格式:
    • friend 函数类型 operator 运算符(参数表);
  • 友元函数定义的格式:
    • friend 函数类型 类名::operator 运算符(参数表){函数体;}

运算符重载规则

  • 运算符重载不允许发明新的运算符。
  • 不能改变运算符操作对象的个数
  • 运算符被重载后,其优先级和结合性不会改变
  • 不能重载的运算符:
运算符符号
作用域解析运算符::
条件运算符?:
直接成员访问运算符.
类成员指针引用的运算符.*
sizeof运算符sizeof
  • 一般情况下,单目运算符最好重载为类的成员函数;双目运算符则最好重载为类的友元函数。
  • 以下一些双目运算符不能重载为类的友元函数:=、()、[]、->。
  • 类型转换运算符只能以成员函数方式重载
  • 流运算符只能以友元的方式重载

++运算符重载

  • 前置++运算符重载
    • 成员函数的方式重载,原型为:函数类型 & operator++();
      在这里插入图片描述
      在这里插入图片描述

    • 友元函数的方式重载,原型为:friend 函数类型 & operator++(类类型 &);

  • 后置自增和后置自减的重载
    • 成员函数的方式重载,原型为:函数类型 & operator++(int);
    • 友元函数的方式重载,原型为:friend 函数类型 & operator++(类类型 &,int);
      在这里插入图片描述
      在这里插入图片描述

!运算符重载

在这里插入图片描述
在这里插入图片描述

赋值运算符重载

深拷贝
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值