[POO] Information plus qu'utile...
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Bonjour,

En parcourant les forums je suis tombé sur une information mainte fois évoquée sans pourtant trouver de vrai solution (dans les précédentes versions).

Comment manipuler l'instance en cours d'une classe dans celle-ci ? Utiliser le mot-clé Objet !

Voici donc enfin l'équivalent du This connu par ailleur.

une classe peut donc retourner sont instance par une simple méthode :
PROCEDURE This()
RENVOYER objet


Idéal pour dupliquer les instances.

J'attends des confirmations qui remplaceront nos fumeuses recherches d'il y a un certain temps.

Contribution le : 19/07/2005 17:31
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer


Re: [POO] Information plus qu'utile...
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Testé et opérationnel
Les membres privées sont bien copiés dans le nouvel objet et si l'un des membres publiques ou privées du premier objet sont modifiés ils ne le sont pas dans le deuxième.

On a donc bien une copie de l'instance dans une nouvelle instance et non deux intances qui pointent sur le meme objet.

Contribution le : 19/07/2005 18:51
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: [POO] Information plus qu'utile...
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Merci ! L'information est repportée dans la FAQ

Contribution le : 19/07/2005 22:56
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer


Re: [POO] Information plus qu'utile...
DSI WDF
Inscrit:
15/03/2005 14:22
Post(s): 238
En parlant d'objet, quelqu'un sais si il est possible de faire une copie d'un objet par référence?

Ex :

A est une classeXXX
B est une classeXXX

B <= A
A:val = 1
info(B:val)

Et là, je veux avoir 1 affiché.

Contribution le : 19/07/2005 23:27
Créer un fichier PDF de la contribution Imprimer


Re: [POO] Information plus qu'utile...
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
C'est justement ce dont on parle (en WDForgien, je l'admet) :

A est une classeXXX
B est un objet dynamique

A:val = 1
B = A:This
info(B:val) // Donne 1
Libérer B


Avec la méthode This :
PROCEDURE This
Renvoyer Objet

Contribution le : 19/07/2005 23:36
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer


Re: [POO] Information plus qu'utile...
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

et meme le plus interressant:
A est un ClasseXXX
B est un ClasseXXX

A:val = 1
B = A:This
info(B:val) // Donne 1
A:val = 2
Info(A:val) //Donne 2
Info(B:val) //vaut toujours 1


Mais le plus interressant dans cette methode est le fait que les membres privés de l'instance d'origine sont copiés dans l'instance de destination.

Contribution le : 20/07/2005 01:26
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: [POO] Information plus qu'utile...
DSI WDF
Inscrit:
15/03/2005 14:22
Post(s): 238
Ce que je souhaitais, ce n'est pas une copie de l'objet, mais un objet avec 2 noms.
Si je modifie un membre d'un de ces objet, les 2 subissent le changement automatiquement.

Contribution le : 20/07/2005 09:52
Créer un fichier PDF de la contribution Imprimer


Re: [POO] Information plus qu'utile...
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Bonjour,
il n'existe pas a priori de telle possibilité. En effet, c'est même un des avantage de la POO que de proposer deux instances bien distinctes, soit deux versions d'un même code en même temps mais dans des contextes mémoire séparés.

Donc, pour obtenir une telle solution, je ferais un objet conteneur (tableau dynamique d'objets ClasseXXX) en charge d'assurer alors l'affectation des membres DANS TOUTES les instances pour le membre en question. Evidement il faudra alors systématiquement passer uniquement par le conteneur pour affecter les membres à diffuser dans les instances.

Contribution le : 20/07/2005 10:02
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer


Re: [POO] Information plus qu'utile...
DSI WDF
Inscrit:
15/03/2005 14:22
Post(s): 238
C'est la solution que j'ai retenus.
Je passe par une structure composé d'un ID d'objet (our retrouver facilemeent mon objet) et d'un objet de ma classe.

Contribution le : 20/07/2005 10:12
Créer un fichier PDF de la contribution Imprimer


Re: [POO] Information plus qu'utile...
Bonjour,

en fait c'etait le fonctionnement depuis la 7.5
si je fais :

ADDR1 est un C_work_list(....)
ADDR2 est un objet dynamique

ADDR2 = ADDR1:Duplicate()
// le de duplicate code est : renvoyer objet

Trace("ADDR1 : "+ADDR1:m_work_list+ " / "+ADDR1:m_lnotes)
Trace("ADDR2: "+ADDR2:m_work_list+ " / "+ADDR2:m_lnotes)
ADDR1:m_work_list = "TOTOT"

Trace("ADDR1 : "+ADDR1:m_work_list+ " / "+ADDR1:m_lnotes)
Trace("ADDR2: "+ADDR2:m_work_list+ " / "+ADDR2:m_lnotes)


mes 2 objets ce suivent donc j'ai bien une seule instance avvec 2 noms differents (c'etait utile quelque fois) mais a partir de la 9 ce code peut avoir une tout autre fonctionnalite donc attention au regressions. il faudrait faire le test avec une V9

dans ce code V7.5 c'etait bien le but rechercher avoir 2 fois la meme instance avec un nom different


Contribution le : 20/07/2005 11:17
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2