== überladen
-
so überlade ich += in meiner Klasse:
frac& operator+=(const frac& a) { m_zaehler = a.m_zaehler * m_nenner + m_zaehler * a.m_nenner; m_nenner *= a.m_nenner; kuerzen(m_zaehler, m_nenner); return *this; }
== zu überladen bereitet mir Probleme.
bool operator==(const frac& a, const frac& b)
läuft nicht ('frac::operator ==(const frac &,const frac &)' muss mit einem Parameter deklariert werden).
-
operator== hat bloß einen Parameter, das rechte Objekt, und nicht zwei Parameter.
Aber es ist besser den operator== als friend zu machen:
clas frac { friend bool operator== (const frac&a, const frac&b); // Jetzt schon 2, weil er nicht mehr zur Klasse gehört sondern nur Friend ist }; bool operator== (const frac&a, const frac&b) // kein frac:: weil er nicht zur klasse gehört { // impl }
Warum das so ist findest du mit Hilfe der Suchfunktion in vielen Threads erklärt.
MfG SideWinder
-