Sobes.tech
Middle

Hoe overload je de postfix- en prefix-incrementoperator in C++?

sobes.tech AI

Antwoord van AI

De prefix- en postfixverhogingsoperatoren ++ in C++ worden overbelast met behulp van twee verschillende handtekeningen van lidfuncties:

  • Prefixverhoging: Geeft een verwijzing naar het huidige object (*this) terug na wijziging.

    ClassName& operator++() {
        // Logica van prefixverhoging
        // Wijzig de toestand van het object
    
        return *this; // Geef een verwijzing naar het gewijzigde object
    }
    
  • Postfixverhoging: Geeft een kopie van het object vóór de wijziging terug. Verschilt door de aanwezigheid van een fictieve parameter int.

    ClassName operator++(int) {
        ClassName temp = *this; // Bewaar de huidige toestand
    
        // Logica van postfixverhoging
        // Wijzig de toestand van het object
    
        return temp; // Geef de opgeslagen kopie terug
    }
    
Type verhoging Functiesignatuur Geretourneerde waarde Parameters
Prefix ClassName& operator++() Verwijzing naar het gewijzigde object Geen
Postfix ClassName operator++(int) Kopie van het object vóór de wijziging Fictieve int