在什么情况下要对运算符重载???

simonzone 2002-04-25 12:33:16
是不是除了内建型别外都要???
...全文
180 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
晨星 2002-04-25
  • 打赏
  • 举报
回复
当你要让自己编写的类支持系统的运算符时,比如,你可以为自己定义的复数类重载加减乘除运算符,这样,当你要把两个复数a ,b相加,就可以使用更加简洁的“a+b”的形式,这比函数实现plus(a ,b)要简洁多了,当然这种情况下,你往往也需要重载赋值运算符。再比如你可以让自己定义的链表类支持“[]”运算符,这样,当你调用list[5]时,就可以取得该链表的第六个节点,就像使用数组一样。
Januarius_ 2002-04-25
  • 打赏
  • 举报
回复
你想直接输出自己定义的一个类型时,可以对<<操作符进行重载,如
想输出一个struct或是一个class里的某些元素,重载<<就可以帮你实现这一点,其实操作符重载和普通的函数是一样的,都是为了实现某种操作而写的。
dev_uoboy 2002-04-25
  • 打赏
  • 举报
回复
对自定义类型操作时,需要自己定义

比如 你定义了一个类,这个类的两个对象需要相加、相减时需要重载+和-

不然你没办法直接使用+和-对这两个对象进行操作
huangwu007 2002-04-25
  • 打赏
  • 举报
回复
当你自己写的类型需要使用运算符进行运算时,你就要重载
例如你写了一个String类型
String str1 = "123";
String str2 = "456";
当你想使用 str1 + str2来表示"123456"时,你的String类型就要对“+”进行重载
prototype 2002-04-25
  • 打赏
  • 举报
回复
no. you don't have to. operators are also functions, so they can
always be replaced by normal functions.
good operator overloadings can improve the readibility of
your code. bad ones can do the opposite.
在什么情况下要对运算符重载?
imho, 对运算符重载 when it can improve the readibility of your code.

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧