j'aimerai juste savoir si lorsque l'on fait une class un operateur "=" est implisitement creer et ce qu'il fait.
juste le egale des valeur?? Ca n'existe pas??
merci.
Version imprimable
j'aimerai juste savoir si lorsque l'on fait une class un operateur "=" est implisitement creer et ce qu'il fait.
juste le egale des valeur?? Ca n'existe pas??
merci.
Dans une classe qui ne contient pas de declaration explicite d'un operator=, un operator= inline est defini implicitement par le compilateur avec la signature
Il effectue une assignation membre a membre et n'est pas defini dans les cas ou ce n'est pas possible (membre reference, membre n'ayant pas d'operator= accessible).Code:T& operator=(T const&);
L'opérateur = par défaut (si non défini dans la classe) fera de la recopie bit à bit de l'objet sources vers l'objet destination.
Il vaut mieux le définir si des objets membres sont alloués pour éviter que deux même objets pointent vers la même zone mémoire (sachant que les membres alloués seront libérés par le destructeur).
c'est ce que je pensais merci.
Non, il affecte les données membres une à une via leur opérateur =.Citation:
L'opérateur = par défaut (si non défini dans la classe) fera de la recopie bit à bit de l'objet sources vers l'objet destination.
Non. Il utilise l'operator= des membres et des classes de base (je l'ai avais oubliees dans ma premiere reponse).Citation:
Envoyé par ep31
Oui pardon je m'étais mal exprimé.Citation:
Non, il affecte les données membres une à une via leur opérateur =.