Sobes.tech
Middle

Comment surcharge-t-on l'opérateur d'incrémentation postfixe et prefixe en C++?

sobes.tech IA

Réponse de l'IA

Les opérateurs d'incrémentation prefixe et suffixe ++ en C++ sont surchargés à l'aide de deux signatures de fonctions membres différentes :

  • Incrémentation en préfixe : Renvoie une référence à l'objet actuel (*this) après sa modification.

    ClassName& operator++() {
        // Logique de l'incrémentation en préfixe
        // Modifier l'état de l'objet
    
        return *this; // Retourner la référence à l'objet modifié
    }
    
  • Incrémentation en suffixe : Renvoie une copie de l'objet avant sa modification. Se distingue par la présence d'un paramètre fictif int.

    ClassName operator++(int) {
        ClassName temp = *this; // Sauvegarder l'état actuel
    
        // Logique de l'incrémentation en suffixe
        // Modifier l'état de l'objet
    
        return temp; // Retourner la copie sauvegardée
    }
    
Type d'incrémentation Signature de la fonction Valeur retournée Paramètres
Préfixe ClassName& operator++() Référence à l'objet modifié Aucun
Suffixe ClassName operator++(int) Copie de l'objet avant modification Paramètre fictif int