Surcharge de l'opérateur d'affectation = (C++)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Présentation de la surcharge des fonctions opérateurs - Index


L'opérateur d'affectation =() ne peut être surchargé que par déclaration d'une fonction membre non statique. Par exemple,

class String {
     .
     .
     .
   String& operator = (String& str);
     .
     .
     .
   String (String&);
   ~String();
}

Ce code, avec les définitions adaptées de String::operator=(), permet des affectations str1 = str2, comme dans tous les autres langages. Contrairement aux autres fonctions opérateur, la fonction opérateur d'affectation ne peut pas se transmettre aux classes dérivées. Si pour une classe X le programme n'a pas défini d'opérateur =, celui-ci sera défini par défaut comme l'affectation membre par membre des membres de la classe X :

X& X::operator = (const X& source)
{
   // affectation au niveau des membres
}

Voir aussi