我有自定義類Rational,Real和Complex。在Complex中,我重載操作符,它允許我比較Complex和Real,Complex或Rational。如果我可以定義一個Rational對一個複雜的隱式轉換,這很容易,但是由於不值得進入的原因,我不能。定義運算符==時,null值返回「調用不明確」
所以我有,除其他外,
==(Complex a, Real b)
也
==(Real a, Complex b)
顯然,當我嘗試比較
c==null
我收到該調用不明確的錯誤消息。我在一個相關的線程上看到了一個想法,我可以定義==(Complex a, object b)
我曾經想到過,但如果我想允許對稱性,我還需要==(object a, Complex b)
,在這種情況下,兩個複合體之間的比較也是不明確的。
現在,當我檢查爲空時,我必須首先將複雜對象轉換爲對象。什麼是更好的解決方案? (我希望得到一個通用的解決方案,而不是依賴於類之間的任何關係(例如繼承)的解決方案。)
讓我看看你的'class declaration'代碼plz – Rahul
Rahul,我真的在尋找一個獨立於類的細節。 – user2197148