Sobes.tech
Middle

Wie überschreibt man den Postfix- und Prefix-Inkrementoperator in C++?

sobes.tech KI

Antwort von AI

Die Präfix- und Postfix-Inkrementoperatoren ++ in C++ werden durch zwei verschiedene Signaturen von Mitgliedsfunktionen überladen:

  • Präfix-Inkrement: Gibt eine Referenz auf das aktuelle Objekt (*this) nach dessen Änderung zurück.

    ClassName& operator++() {
        // Logik des Präfix-Inkrements
        // Zustand des Objekts ändern
    
        return *this; // Referenz auf das geänderte Objekt zurückgeben
    }
    
  • Postfix-Inkrement: Gibt eine Kopie des Objekts vor seiner Änderung zurück. Es unterscheidet sich durch das Vorhandensein eines fiktiven Parameters int.

    ClassName operator++(int) {
        ClassName temp = *this; // Aktuellen Zustand speichern
    
        // Logik des Postfix-Inkrements
        // Zustand des Objekts ändern
    
        return temp; // Gespeicherte Kopie zurückgeben
    }
    
Inkrementtyp Funktionssignatur Rückgabewert Parameter
Präfix ClassName& operator++() Referenz auf das modifizierte Objekt Kein
Postfix ClassName operator++(int) Kopie des Objekts vor der Änderung Fiktiver int