在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