为什么C不使用operator ==而不是operator!=自动

前端之家收集整理的这篇文章主要介绍了为什么C不使用operator ==而不是operator!=自动前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我理解C不能自动为一个类定义operator ==但是为什么它不能使用!(a == b)for!= b当operator!=不可用但是operator ==是?

我知道std :: rel_ops虽然我今天没有听说过它.

解决方法

因为operator ==并不一定意味着与operator相反!=.

我想不出任何运算符==并不意味着!operator!=的实例,但它们是独立的运算符.关于C的最令人解放的,有时甚至是最令人沮丧的事情之一是C对如何编写代码应用了一组最小的限制.如果你有一个实例,其中operator ==与operator!=不相反,那么你应该能够用C表示.事实上,你可以.

你在C中把坏事带走了.你可能会认为这是“坏”的集合.

请记住,在绝大多数情况下,根据operator ==正确实现operator!=是微不足道的.

bool Gizmo::operator!=(const Gizmo& rhs) const
{
  return !operator==(rhs);
}

猜你在找的C&C++相关文章