在另一个检查!=的函数中调用一个重载的==运算符

Jac*_*lch 2 c++ operator-overloading

我正在尝试编写一个运算符!=函数,用于比较两个复数是否相同.我写了一个相同的==功能,但效果很好,但我试图使用结果的否定.

bool ComplexNumber::operator !=(ComplexNumber a) {
    return !(this==(a));  //the == has been overloaded
}
Run Code Online (Sandbox Code Playgroud)

hmj*_*mjd 6

return !(this==(a));比较a ComplexNumber*和a ComplexNumber.改成:

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

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