Überladen Parameter
-
Ich habe eine Klasse Rationale Zahlen. Für diese möchte ich den Operator == und - überladen sodass damit zwischen Rstionale Objekten hantiert werden kann.
Bei der deklarierung
bool operator==(const Rational &r, const Rational &z); Rational operator-(const Rational &r, const Rational &z) const;
bekomme ich einen Fehler "unary".
Woran könnte das liegen?
-
Da Du die Dinger als Member hast ist der Left-Hand-Side-Operand die Instanz selbst (
this
).
-
-
overloaded 'operator==' must be binary overloaded 'operator-' must be unary
-
@TheDude die vollständige Fehlermeldung. In Visual STudio aus dem Outputtab.
Und die Lösung wurde schon genannt.
-
Ich hab's hinbekommen dank der Anmerkung.
Ich fand nur die Fehlermeldung von QT ein wenig komisch...
-
@TheDude sagte in Überladen Parameter:
bekomme ich einen Fehler "unary".
Möchtest du denn
a - b
rechnen oder einfach nur-b
? Beia - b
brauchst du 2 Parameter, bei-b
(unärer Operator) dagegen nur einen Parameter (entwederthis
oder einenconst Rational&
)
-
Die andere Lösung, diese Funktionen als freie Funktionen zu implementieren, wurde noch nicht genannt.