为什么显式相等运算符没有定义隐式非等式运算符?

时间:2015-09-28 12:09:43

标签: c++

定义相等运算符时,

class foo
{
    bool operator ==(const foo& other) const; //explicit
}

为什么不隐式定义不等式运算符,除非明确定义另一个。默认情况下

"a == b" <==> "!(a != b)" 

可以使用以下定义

bool operator !=(const foo& other) const
{
    return !(this->operator==(other));
}

但为什么每次都需要添加这个定义?

0 个答案:

没有答案