Sobes.tech
Middle

Come sovraccaricare l'operatore di incremento postfix e prefix in C++?

sobes.tech AI

Risposta dell'AI

Gli operatori di incremento prefisso e postfix ++ in C++ vengono sovraccaricati utilizzando due firme di funzioni membro diverse:

  • Incremento prefisso: Restituisce un riferimento all'oggetto corrente (*this) dopo la sua modifica.

    ClassName& operator++() {
        // Logica dell'incremento prefisso
        // Modifica dello stato dell'oggetto
    
        return *this; // Restituisce il riferimento all'oggetto modificato
    }
    
  • Incremento postfix: Restituisce una copia dell'oggetto prima della sua modifica. Si differenzia per la presenza di un parametro fittizio int.

    ClassName operator++(int) {
        ClassName temp = *this; // Salva lo stato attuale
    
        // Logica dell'incremento postfix
        // Modifica dello stato dell'oggetto
    
        return temp; // Restituisce la copia salvata
    }
    
Tipo di incremento Firma della funzione Valore restituito Parametri
Prefisso ClassName& operator++() Riferimento all'oggetto modificato Nessuno
Postfisso ClassName operator++(int) Copia dell'oggetto prima della modifica Parametro fittizio int