Postfix Operator Überladen
-
Hi
Also ich habe eine Klasse geschrieben, um das Überladen der Operatoren zu testen.
#include <iostream> using namespace std; class Counter { public: Counter(): itsVal(0) {} //Counter(const Counter & rhs) {} // Fehler?? ~Counter() {} int GetVal() const { return itsVal; } const Counter operator ++(int); // Postfix private: int itsVal; }; const Counter Counter::operator ++(int) { Counter Temp(*this); ++itsVal; return Temp; } int main() { Counter i; cout << i.GetVal() << endl; Counter a = i++; cout << a.GetVal() << endl; cout << i.GetVal() << endl; system("pause"); return 0; }
Dies fuktioniert solange, bis ich einen Kopier-Konstruktor erstelle.
Danach funktioniert "Counter a = i++" nicht mehr!Ich weiss, in diesem Beispiel brauchts auch keinen Kopierkonstruktor, aber eigentlich wollte ich noch einen Zeiger-Variable in die Klasse einbauen.
Nun habe ich den Kopierkonstruktor erstmal auskomentiert und den Zeiger sammt Memberfunktionen entfernt. Was mache ich falsch?
Vielen Dank schon mal im Voraus
-
Du könntest deinen Kopierkonstruktor z.B. die Daten kopieren lassen.
-
Oh, ähhhhhh, gute Idee
Erinnert micht noch an meine Anfänge mit C. Ihr glaubt nicht, wie lange ich mich gefragt habe, warum #include <studio.h> nicht funktioniert.Meine Güte, für heute ist genug
Danke