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

c – 使用一个 *** 作符的重载来使另一个 *** 作符超载是一种好的做法吗?,第1张

概述我最近发现了C的优秀功能,允许程序员在他们创建的类上重载 *** 作.作为探讨这个话题的一种方式,我决定尝试自己制作 vector课程. 作为满足我的好奇心的一点测试,我最近做了以下 *** 作来重载我的类的相等运算符: 95 bool Vect::operator==(const Vect& rhs){ 96 return this->getCoord() == rhs.getCoord() 98 我最近发现了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可能会帮助你理解它的一些规则和限制.

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

总结

以上是内存溢出为你收集整理的c – 使用一个 *** 作符的重载来使另一个 *** 作符超载是一种好的做法吗?全部内容,希望文章能够帮你解决c – 使用一个 *** 作符的重载来使另一个 *** 作符超载是一种好的做法吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1227804.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存