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

