
Envoy� par
Bakura
Le compilo te cr�� automatiquement un op�rateur d'affectation et copie juste membre � membre. Quand tu cr��s deux objets, le constructeur est appel� deux fois, ton compteur est donc incr�ment� deux fois. Lorsque tu en cr�� un, et que tu fais : point b=a; Le compilateur copie membre � membre, mais n'incr�mente pas ton compteur. Ce que tu dois faire, comme l'a dit Montgaulois, c'est red�finir l'op�rateur = :
1 2 3 4 5 6
| Point & Point::operator= (const Point & monPoint)
{
x = monPoint.x;
y = monPoint.y;
++compteur;
} |
En y r�fl�chissant , je croit que l'on as dit une b�tise. Ce n'est pas que l'op�rateur = qu'il faut red�finir , mais la cr�ation par recopie aussi. L'operateur = ne devrait pas incr�ment� compteur.
sinon
1 2 3 4 5 6
|
point a(-1,5);
point b =a;//indéfinie même avec un operateur = ??? je sais pas
b=a; //compteur++
b=a; //compteur++ |
et
point b = a <=> point b(a);//il me semble
Partager