例如,我已經定義的類爲了在if語句中使用我的類,重載哪一個運算符?
class MyClass
{
....
};
哪個運營商我要在爲了做到與MyClass
對象如果比較超載?
如:
MyClass cc;
if (cc) // compile error
{
//do some stuff
}
我試着用
bool operator == (int value) ; //guess the if() will call this
或
bool operator != (int value) ;
但兩者給我一個編譯錯誤!
@FrédéricHamidi:在C++ 11的存在下,這個問題的答案看起來不同(現在建議使用明確的運算符bool而不是安全bool慣用法)。我不知道SO如何處理這種信息隨着時間的變化...... – PlasmaHH 2013-03-25 14:03:57
你的例子沒有比較。如果你想隱式轉換到'bool',定義'operator bool()'。順便說一句,你永遠不會覆蓋操作員。您可以覆蓋或超載一個。這些術語有不同的含義。 – 2013-03-25 14:04:55
@PlasmaHH,在David Rodriguez的回答下的評論中指出。這應該沒問題。 – 2013-03-25 14:06:07