PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → constructeur de recopie, objet
constructeur de recopie, objet
Iniciado por guest, jul., 28 2005 1:51 PM - 1 resposta
Publicado em julho, 28 2005 - 1:51 PM
voici un bout de code
------------------------

classe CToto
i est un entier
j est un entier
ch est une chaine
fin

---

c1 est un Ctoto
c2 est un objet dynamique

c2= allouer un CToto

c1:iE

c2=c1

Info(c2:i) // --> affiche 45

c1:i‡

Info(c2:i) // --> affiche 87

-----

Moi je voudrai qu'apres l'affectation : c2=c1 , c2:i reste inchangé !

l'affectation, ne recopie pas membre à membre les membres de la classe! existe il un operateur ou une methode permettant cela?

merci d'avance.
Publicado em julho, 28 2005 - 1:43 PM
Salut,

j'ai également eu des problèmes avec cela.

Si ton objet c2 n'est pas un objet dynamique, cela va fonctionner (si je me
souviens bien).

Par contre, il faut faire attention:
l'affectation d'on objet à un autre (de la même classe bien entendu), copie
un objet dans l'autre pour tous les type de variables des données membres
sauf une: les tableaux.
Ce qui veut dire que toutes les données membres auront leur propres adresse,
sauf les tableaux.

Ce qui veut dire que si tu as des tableau dans les données membres de tes
classes, l'affectation suivante: c2=c1 ne te sert à rien, à moins que tu ne
planifies pas faire de modifications dans tes tableaux.


De mon côté j'ai été obligé de me créer une classe de copie d'objet, pas
super pratique mais bon...


Mathieu

"flo007" <guest@newsgroup.fr> a écrit dans le message de news:
42e89f87@news.pcsoft.fr...


voici un bout de code
------------------------

classe CToto
i est un entier
j est un entier
ch est une chaine
fin

---

c1 est un Ctoto
c2 est un objet dynamique

c2= allouer un CToto

c1:iE

c2=c1

Info(c2:i) // --> affiche 45

c1:i‡

Info(c2:i) // --> affiche 87

-----

Moi je voudrai qu'apres l'affectation : c2=c1 , c2:i reste inchangé !

l'affectation, ne recopie pas membre à membre les membres de la classe!
existe il un operateur ou une methode permettant cela?

merci d'avance.