我理解C++不能operator==自动为一个类定义,但为什么它不能!(a == b)用于a != b什么时候operator!=不可用但是operator==?
我知道std::rel_ops虽然我今天没有听说过它.
因为operator==并不一定意味着相反operator!=.
我想不出任何operator==不意味着的实例!operator!=,但它们是独立的运营商.关于C++最令人解放,有时甚至是最令人沮丧的事情之一就是C++对如何编写代码应用了一组最小的限制.如果你的实例operator==不是相反的operator!=,那么你应该能够在C++中表达它.事实上,你可以.
你在C++中利用坏处.你可能会认为这是"坏"的集合.
请记住,在绝大多数情况下,正确实施是微不足道operator!=的operator==.
bool Gizmo::operator!=(const Gizmo& rhs) const
{
return !operator==(rhs);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
305 次 |
| 最近记录: |