In meinen Hausaufgaben muss ich eine Klasse Nachricht entwerfen; neben anderen Attributen hat es Attribut "Priorität" (Hauptziel ist die Implementierung der Prioritätswarteschlange).Überladen von Operator <und Operator> in derselben Klasse
Wie im Container muss ich überprüfen, ob ein Objekt größer als andere ist, ich habe den Operator '>' überladen. Nun, ich habe ein paar allgemeinen Fragen zu diesem Thema ...
Frage eins:
Wenn ich überlastete Operator '>', soll ich überlastete Operator '<' für Argumente (const Nachricht &, const Nachricht &)
Meine Meinung ist, dass sowohl eine Überlastung> und < und es im Code verwendet, wird ein Fehler generiert:
if(message1 > message2)
{ ... }
(Ist der folgende Code ruft Operator> für message1 Objekt oder Betreiber < Message2 Objekt?)
Aber was, wenn ich Operator wie folgt verwenden:
if(message1 < message2)
{ ... }
?
Operator> als Freund Funktion deklariert:
friend bool operator>(const Message& m1, const Message& m2)
es als Mitglied Funktion deklariert werden muss?
Vielen Dank.
Danke, ich habe irgendwo gelesen, dass, wenn ich eine Relation Operation überladen, es rational scheint, alle von ihnen zu überlasten. –
Und danke über Freund/Mitglied antworten. Ich verstehe was du meinst :). –
Diese Antwort sollte auch darauf hinweisen, dass die meisten relationalen Operatoren in Form einer Handvoll Operatoren beschrieben werden können, normalerweise '<' und '=='.Zum Beispiel kann 'operator> =' geschrieben werden: 'bool operator> = (const T & l, const T & r) {return! (L
greyfade