Bonjour je voudrais definir un operateur = pour ma classe plane.
Ca compile bien mais ca ne fait pas ce que je desire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
plane plane::operator = (plane p)
{
p.name=name;
p.landingGearOn=landingGearOn;
p.OnAir=OnAir;
return p;
}
C'est la definition de l'operateur dans plane.cpp

Dans le main j'ai
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
plane p= plane("abcd");
  plane q(p);//c'est un copy constructor modifie : il na pas la meme valeur //pour name que p
 
q=p;
cout <<"the (q)name is " <<q.getName()<<endl;
Quand j'execute le main il m'affiche :


[quote]
the (p)name is abcd
the (q)name is
p and q are not equals // c'est ici que j'ai fait q=p
the (q)name is //donc normalement on devrait avoir q name is abcd.