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


Anmelden zum Antworten