Gleich Operator überladen
-
Ich hab ein paar Operatoren überladen, aber der Gleich Operator funktioniert nicht richtig.
//bei der Ausführung TZahl a; TZahl b; TZahl c; int d; a=500; b=258; c=a*b; d = c; // in der klasse selbst TZahl& TZahl::operator= (const TZahl &aZahl) { return *this; } //Oder TZahl TZahl::operator= (const TZahl aZahl) { return aZahl; }Bei beiden Variationen gibt er nur eine leere Klassen zurück und ich weis nicht warum

-
Edit: Blödsinn, sry.
Die Überladung ist etwas falsch.
a=b musst du ansehen als a.operator=(b); wie dir hier auffällt kommt der Rückgabewert des = operator NICHT in a. Diese Zuweisung musst du eben in der Funktion durchführen. Machst du aber nicht.
-
Kannst du das vielleicht in Programm Code hinschreiben?
-
class MyInt{ int wert; public: MyInt(int i):wert(i){} //Konstruktor //alle möglichen Funktionen MyInt& operator=(const MyInt& i){ wert=i.wert; //hier erfolgt die Wertzuweisung return *this; } }; int main(){ MyInt a(5),b(7),c(9); c=b=a; //c und b werden danach ebenfalls den Wert 5 enthalten. }Ich hoffe ich habe jetzt keine Fehler gemacht. Falls doch bitte sagen.
-
OK Danke
Nur die Operator Funktion war mir wichtig.
