Probleme d'implementation operator= en C++ - C++ - Programmation
Marsh Posté le 07-08-2003 à 16:39:55
Je verrais bien un:
Code :
|
Un truc dans ce style. Bie nsur ça supose que la classe mère posséde son propre opérateur =
Marsh Posté le 07-08-2003 à 16:42:22
LetoII a écrit : Je verrais bien un:
|
je suis d'accord, mais dans mon cas elle en a pas, tu
penses que je suis bloqué ? fo faire autrement ?
Marsh Posté le 07-08-2003 à 16:44:59
merry a écrit : |
Y a un constructeur de recopie?
Marsh Posté le 07-08-2003 à 16:48:14
merry a écrit : ouai yen a un. |
C très crade à mon gout mais tu doit pouvoir faire un new de placement sur le this en appelant le constructeur par recopie
Marsh Posté le 07-08-2003 à 16:50:12
ouai moi aussi jtrouve pas ca tres clean comme
prog mais j'ai deja essayé quand meme.
Le probleme c'est (j'ai oublié de preciser ca)
c'est ke le constructeur de copie est declaré
en private et ke j'y ai pas directement acces,
j'ai seulement droit au constructeur par defaut.
sniff, sniff.
Marsh Posté le 07-08-2003 à 17:17:52
une classe a toujours un opérateur= !
l'operator= ne s'hérite pas
Marsh Posté le 08-08-2003 à 09:01:23
Code :
|
J'ai pas mieu à proposer (cete chaleur me détruit le cerveau )
Marsh Posté le 08-08-2003 à 09:29:03
pas la peine de faire un dynamic_cast. un static suffit. par contre, je comprends pas le problème à faire ça
Code :
|
doit marcher dans tous les cas! ohé, ecoutez moi. toutes les classes C++ on un constructeur, destructeur, constructeur par recopie et operator=, que vous l'ecriviez ou pas!
Marsh Posté le 08-08-2003 à 09:31:04
Taz a écrit : pas la peine de faire un dynamic_cast. un static suffit. par contre, je comprends pas le problème à faire ça
doit marcher dans tous les cas! ohé, ecoutez moi. toutes les classes C++ on un constructeur, destructeur, constructeur par recopie et operator=, que vous l'ecriviez ou pas! |
Tout à fait d'accord (après faut espérer que ça se passe bien avec l'operateur par défaut )
j'avais eu un petit doute sur le
Code :
|
C pour ça que j'avais proposé une autre solution.
Marsh Posté le 07-08-2003 à 16:08:49
Voila mon probleme :
J'ai deja eu à surcharger cet operator de
la facon suivante:
CObj & CObj::operator=(const CObj & o){
a = o.a;
b = o.b;
..
etc...
return *(this);
}
Ca c'est un classique, mais aujourd'hui
mon probleme c'est ke ma classe CObj derive d'une
classe CObjParent et ke la, je ne sais pas
comment ecrire ma surcharge pour ke le compilateur
me copie aussi les attributs de la classe mere (auxquels
j'ai pas acces, private oblige).
C'est encore plus tordu que le constructeur de copie.
Si quelqu'un voit une solution à ce probleme...
j'attends vos suggestions, merci