Re: Copie de classe

Posté par benj1808 le 11/8/2004 14:48:42
Cela fonctionnera certe dans le cas d'une classe qui ne possède pas d'objets globaux, si vous avez un membre global dans votre classe celui ci ne sera pas mis à jour car il existe en dehors de l'objet hors tu te contente de copier l'objet bit par bit et pas ce à quoi il fais référence.

Un exemple de ce type de membre serait un tableau qui ferait référence à tous les objets générés par la classe pour ainsi pouvoir acceder à chacun d'eux. Avec cette methode l'objet créé ne serait pas référencé.

Donc prudence avant d'employer cette méthode ou alors l'utiliser dans une fonction de la classe qui se charge d'effectuer la mise à jour des membres globaux.

Un autre risque vient des membres privés ou protégé (c'est la même terminologie qu'en C++ je crois) auxquels tu n'est pas sensé avoir acces en dehors de la classe et qui risquent de créer des exceptions, voir de tout faire planter.

Dernière chose, si tu fais référence à d'autres classes (par adresse donc) à l'intérieur de ta classe principale, cette copie vas recopier l'adresse de ces sous-objets et obj1 et obj2 feront tous deux référence au même sous-objet.

Vue que la classe de deedier est relativement compliqué et fais référence à des objets dinamiques si je ne me trompe transfert risque de faire pas mal de casse (j'avoue n'avoir pas eut le temps de faire une classe juste pour tester tout ça).

Clc : ça doit fonctionner dans une classe "basique" ou tous les membres sont fixes mais après c'est probablement une autre histoire

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=12&topic_id=1208&post_id=4886