Surcharge de l'opérateur d'affectation = (C++)
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 }