在我的作業中,我必須設計一個類Message;在其他屬性中,它具有屬性「優先級」(主要目標是實現優先級隊列)。在同一類中重載operator <和operator>
在容器中,我必須檢查一個對象是否大於其他對象,我重載了操作符'>'。現在,我有一個關於它的一些一般性的問題...
問題一:
如果我重載運算符「>」,我應該重載運算符「<」的參數(const的消息&,常量消息& )?
我的看法是,超載都>和<,並使用它的代碼將產生錯誤:
if(message1 > message2)
{ ... }
(執行以下代碼調用運營商>爲MESSAGE1對象,或運營商< MESSAGE2對象?)
但是,如果我用運營商這樣的內容:
if(message1 < message2)
{ ... }
?
操作>聲明爲友元函數:
friend bool operator>(const Message& m1, const Message& m2)
是否需要被聲明爲成員函數?
謝謝。
謝謝,我在某處讀到,如果我重載一個關係操作,那麼重載所有關係操作似乎是合理的。 – 2009-11-07 15:17:49
謝謝你的朋友/會員回答。我明白你的意思了 :)。 – 2009-11-07 15:19:55
這個答案也應該指出,大多數關係運算符可以用少數運算符來描述,通常是'<'和'=='。例如,'operator> ='可以寫成:'bool operator> =(const T&l,const T&r){return!(l
greyfade
2013-09-09 22:17:07