我有一段代码实现了==重载。我不得不在某个否定的地方使用它。但是对于读者来说,写!(A == B)
似乎并不是很清楚。所以我实现了这个双重重载。这样做有什么缺点吗?效率明智吗?:
struct Foo{
bool operator==(const Foo& other) const{
.... //Something that sometimes produces "return false"
return true;
}
bool operator!=(const Foo& other) const{
return !(*this == other);
}
}
加分:为什么编译器尚未使用!=
的否定默认实现==
?