我正在尝试编写一个运算符!=函数,用于比较两个复数是否相同。我已经编写了一个等于==的函数,该函数很好用,但是我试图使用结果的求反。

bool ComplexNumber::operator !=(ComplexNumber a) {
    return !(this==(a));  //the == has been overloaded
}

最佳答案

return !(this==(a));正在将ComplexNumber*ComplexNumber进行比较。改成:

bool ComplexNumber::operator !=(const ComplexNumber& a) const {
    return !(*this == a);  //the == has been overloaded
}

还为函数和参数添加了const限定符(为了避免不必要的复制,我将其改为引用)。如果const尚不存在,则需要将bool ComplexNumber::operator ==()限定符添加到ojit_code中。

关于c++ - 在另一个检查!=的函数中调用重载的==运算符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9464876/

10-11 21:48