运算符重载之注意事项

运算符重载

一、可以重载的符号

1.比较常用的运算符

  • 算符运算符:+ - * / %
  • 复合算数运算符: += -= *= 类似
  • << 和 >>
  • [] ++ – delete new ()

所有的符号为:+ - * / % ^ & | ~ ! = < > += -= *= /= %= ^= &= |= << >> <<= >>= == != <= >= && || ++ -- , ->* -> () [] new new[] delete delete[]

二、特别重点的符号,只能以成员函数的形式进行重载

  • 箭头运算符->、
  • 下标运算符[ ]、
  • 函数调用运算符( )
  • 赋值运算符=

三、成员函数重载与非成员函数重载的区别

  • 成员函数是一个参数,另一个用默认的this
  • 非成员: 需要两个参数 + friend

四、总体规则

  • 重载不能改变运算符的优先级和结合性

  • 重载不会改变运算符的用法,原有有几个操作数、操作数在左边还是在右边,这些都不会改变。例如~号右边只有一个操作数,+号总是出现在两个操作数之间,重载后也必须如此

  • 运算符重载函数不能有默认的参数,否则就改变了运算符操作数的个数,这显然是错误的。

  • 将运算符重载函数作为类的成员函数时,二元运算符的参数只有一个,一元运算符不需要参数。之所以少一个参数,是因为这个参数是隐含的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值