
 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 = :
	
	| 12
 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
	
	| 12
 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