Surcharge de l’opérateur d’affectation en C++

Dans ce tutoriel nous allons découvrir comment surcharger l’opérateur d’affectation (opérateur =) qui permet de copier la valeur d’un objet, tout comme le constructeur de copie.

Surcharger l’opérateur d’affectation est assez simple. Il doit être surchargé en tant que fonction membre.
 

Syntaxe:
ReturnType operator = (const ClassName &)

 
 

Exemple: Surcharge de l’opérateur d’affectation
#include<iostream>

using namespace std;

class Personne
{
   private:
      string nom;            
      int age;           
   
   public:
   
   // Constructeur paramétré
    Personne(string n, int a) {
        nom = n;
        age = a;
    }

   // Surcharge de l'opérateur d'affectation
    void operator=(const Personne &p) { 
        nom = p.nom;
        age = p.age;
    }
    
   void afficher() {
      cout << "Le nom de la personne est :" << nom << endl;
      cout << "L'age de la personne est :" << age << endl;
    }
};

int main()
{
  // Crée deux objets Personne
   Personne p1("Alex", 25);
   Personne p2("Bob", 30); 
   
   cout << "****** Personne 1 ******" << endl; 
   p1.afficher();
   cout << "****** Personne 2 ******" << endl; 
   p2.afficher();

   // utiliser l'opérateur d'affectation
   p1 = p2;
   
   cout << "****** Aprés l'affectation ******" << endl; 
   p1.afficher();

   return 0;
}

La sortie :
 

 
Comme indiqué dans le code ci-dessus, nous surchargons l’opérateur d’affectation. Par conséquent, ‘p1 = p2’ dans la fonction principale copiera le contenu de l’objet ‘p2’ dans ‘p1’.
 
 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.