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

重载运算符

时间:2018-09-28 22:14:43      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:前置   一个   成员   形参   情况   含义   默认   bubuko   ima   

五大基本规则

1.重载的运算符的参数数量应与运算对象数量一样多

2.不能有默认实参(不然就违反了第一条)

3.其参数至少有一个是类类型,不能全是内置类型

4.只能重载已有运算符,且含义应保持一致

5.不能改变运算符原有的优先级和结合律

五大不能重载的运算符

1.  .(成员访问运算符)

2.  .*(成员指针访问运算符:这个还不太懂。。。)

3.  ::(域运算符)

4.  ? :(条件运算符:return num==1 ?  4 : 6)

5.  sizeof(既是关键字,又是运算符)

重载IO运算符

  重载输入输出运算符(>>、<<)必须将其定义为非成员函数(不含this指针),因为引起调用的是流类对象cin或cout,而不是自身类的对象,所以一般声明为友元。

技术分享图片

重载递增和递减运算符

区分前置(++i)和后置(i++)运算符:

  为了让重载时区分这两种情况,后置版本有一个int型的形参,当使用后置运算符时,编译器为这个形参提供一个值为0的实参。但这个形参其实并不使用,只用来做区分。

技术分享图片技术分享图片

必须用成员函数重载的运算符

1.  =(赋值运算符)

2.  [ ](下标运算符)

3.  ->(箭头运算符)

4.  ()(函数调用运算符)

重载运算符

标签:前置   一个   成员   形参   情况   含义   默认   bubuko   ima   

原文地址:https://www.cnblogs.com/Joezzz/p/9721044.html

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