加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 使用一个操作符的重载来使另一个操作符超载是一种好的做法

发布时间:2020-12-16 07:13:10 所属栏目:百科 来源:网络整理
导读:我最近发现了C的优秀功能,允许程序员在他们创建的类上重载操作.作为探讨这个话题的一种方式,我决定尝试自己制作 vector课程. 作为满足我的好奇心的一点测试,我最近做了以下操作来重载我的类的相等运算符: 95 bool Vect::operator==(const Vect rhs){ 96 ret
我最近发现了C的优秀功能,允许程序员在他们创建的类上重载操作.作为探讨这个话题的一种方式,我决定尝试自己制作 vector课程.

作为满足我的好奇心的一点测试,我最近做了以下操作来重载我的类的相等运算符:

95 bool Vect::operator==(const Vect& rhs){
 96     return this->getCoord() == rhs.getCoord()
 98 }
 99 
100 bool Vect::operator!=(const Vect& rhs){
101     return !(*this == rhs);
102 }

这编译并正常工作.但是,我有一个关于这是好/坏做法的问题(以及为什么!).如果它是一个坏的,我不想养成这样做的习惯,或鼓励自己继续使用它,如果它是一个好的.

解决方法

运算符重载没什么不好,这是一个很好的做法.

运算符重载可帮助您编写干净且易于理解的代码,并使编辑过程更容易.

PS:正如你所说,你最近遇到了操作符重载,this可能会帮助你理解它的一些规则和限制.

编辑:使用重载运算符来重载其他运算符是可以的.但它会产生两个函数调用而不是一个,考虑到性能,这是不可取的.但它并没有那么多影响.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读