请问,为什么在一个类的内部重载运算符时,参数列表中只能有一个参数存在??
图片中是对 + 进行重载。明明使用时需要两个参数。 似乎,this这个指针指向了另一个本该出现的参数。
然而this不应该是正在被我们使用的对象的指针才对吗?
问题:
1.为什么在一个类的内部重载运算符时,参数列表中只能有一个参数存在,而在友元函数的情况下就可以两个?
2.既然参数列表只有一个参数,为什么在使用+时 依旧可以填充两个操作数?
3.this为什么会指向另一个本该出现在参数列表中的参数?
4.this这个指针到底指向什么?
关于C++中重载运算符的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- Pliosauroidea 2021-08-22 21:17关注
因为运算符重载的时候要在运算符两侧的对象中找对应的运算方法,此时对于此对象来说,他自身已经作为一个默认值被传入了,相当于对象A在其重载运算+中传入了参数B,或许可以等价的看做a.A+(B)
重载+只能填写一个参数是因为+是个二元操作符,其中一个操作数已经被A占据,所以只需要传入另一个操作数B即可
友元函数则是访问类中的属性,他可以显式的传入多个参数,因为友元函数本身可以不属于任何类,也就没有隐藏的this
有帮助望采纳本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 微信小程序协议怎么写
- ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
- ¥20 怎么用dlib库的算法识别小麦病虫害
- ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
- ¥15 java写代码遇到问题,求帮助
- ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
- ¥15 有了解d3和topogram.js库的吗?有偿请教
- ¥100 任意维数的K均值聚类
- ¥15 stamps做sbas-insar,时序沉降图怎么画
- ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看