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’.