Comme son nom l'indique, le constructeur par copie
construit un nouvel objet, alors que l'opérateur d'affectation opère sur un objet
existant.
Par exemple, un quiz classique : Qu'affiche chacune des lignes suivantes ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
#include <iostream>
struct MaClasse
{
MaClasse(){std::cout << "Default Ctor\n"; }
MaClasse(const MaClasse&){std::cout << "Copy Ctor\n"; }
MaClasse& operator=(const MaClasse&){std::cout << "Op = \n"; return *this;}
};
int main()
{
MaClasse m1;//Affiche : Default Ctor
MaClasse m2(m1);//Affiche : Copy Ctor
MaClasse m3 = m2;//Affiche : Op =
MaClasse m4 = MaClasse();//Affiche : Default Ctor
m1 = m2;//Affiche : Op =
//J'ai pas testé, mais je pense que c'est ça...
} |
Partager