在C++中,可以为用户类型重载==
和!=
运算符,但语言并不在乎您是如何执行的。可以重载都返回true
不管是什么,所以!(a==b)
和(a!=b)
不一定必须评估,以同样的事情。有多少其他语言可以有¬(a = b)
和(a ≠ b)
不同的情况?这是常见的事情吗?¬(a = b)和(a≠b)的语言可以不同
这不仅仅是过载的问题,但奇怪的角落情况下,甚至基本类型。 C和C++中的NaN并不等于任何东西,包括NaN。在C中,NaN!= NaN的确如此,但在其他语言中可能会出现类似的情况,导致¬(a = b)
和(a ≠ b)
不同?
仅仅因为你可以做到这一点在C++并不意味着你永远,永远应该...... – corsiKa 2012-04-14 19:34:00
我知道你可以在Ruby中做到这一点! – Arth 2012-04-14 19:34:19
我也会试图添加..任何语言,您可以重载==或!=运算符。或者这太obv? – Arth 2012-04-14 19:35:42