使用一个运算符的重载来超载另一个运算符吗?

时间:2015-07-23 03:13:43

标签: c++ operator-overloading

我最近发现了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 }

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

1 个答案:

答案 0 :(得分:1)

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

Operator overloading可帮助您编写干净且易于理解的代码,并使编辑过程更加轻松。

PS:正如您所说,您最近遇到operator overloadingthis可能会帮助您了解它的一些规则和限制。

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