C++:重载!=当==重载时

Jak*_*e Z 3 c++ overloading class operator-keyword

假设我有一个类,我重载了运算符==:

Class A {
  ...
  public:
    bool operator== (const A &rhs) const;
  ...
};

...

bool A::operator== (const A &rhs) const {
  ..
  return isEqual;
}
Run Code Online (Sandbox Code Playgroud)

我已经让运算符==返回正确的布尔值.现在我想将它扩展到简单的对面(!=).我想调用重载的==运算符并返回相反的,即性质的东西

bool A::operator!= (const A &rhs) const {
  return !( this == A );
}
Run Code Online (Sandbox Code Playgroud)

这可能吗?我知道this不会起作用,但它体现了我想拥有的东西.我想只为调用保留一个参数:rhs.任何帮助将不胜感激,因为我经过几次搜索尝试后无法得到答案.

Dav*_*eas 9

你几乎拥有它:

bool A::operator!= (const A &rhs) const {
  return !( *this == rhs );
}
Run Code Online (Sandbox Code Playgroud)

请注意,这this是一个指针,而不是对象.你需要取消引用它.在相关的说明中,通常最好将大多数二元运算符实现为自由函数而不是成员函数.