定义相等运算符时,
class foo
{
bool operator ==(const foo& other) const; //explicit
}
为什么不隐式定义不等式运算符,除非明确定义另一个。默认情况下
"a == b" <==> "!(a != b)"
可以使用以下定义
bool operator !=(const foo& other) const
{
return !(this->operator==(other));
}
但为什么每次都需要添加这个定义?