remplace ton (A)(*this) = (A)b par
Code :
- A:: operator = (static_cast <const A &> (b));
|
Sinon, attention quand tu fais strcpy(p_char2,b.p_char2), si les 2 chaines ne sont pas de meme taille, tu vas avoir des problèmes.
De manière générale, il vaut mieux écrire les opérateurs d'affectation ainsi:
Code :
- Type &operator = (const Type &t)
- {
- if (this != t)
- {
- /* copie */
- }
- return *this;
- }
|
ca évite les problèmes liés à l'autoaffectation (a=a) quand tu manipules des pointeurs.
Message édité par gloop le 07-02-2003 à 19:38:57