PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV (earlier versions) → aide sur les pointeurs
aide sur les pointeurs
Started by dany, Sep., 02 2004 12:16 PM - 3 replies
Posted on September, 02 2004 - 12:16 PM
bonjour,

j'ai créé deux classes, personne et voiture.
La classe voiture a pour attribut "proprietaire" qui est un entier. La
méthode "affecter_proprietaire" a pour parametre un objet personne et on
affecte l'adresse de cet objet personne pour l'attribut "proprietaire"
// code simplifié
voiture est une classe
proprietaire est un entier // adresse d'un objet de la classe
personne
....
FIN
....
....
PROCEDURE affecter_proprietaire(une_personne)
:proprietaire = &une_personne
....

Le traitement que je souhaite effectuer, consiste à récupérer le
propriétaire d'une voiture.

logiquement j'ai fait le traitement suivant :
Berthe est une personne dynamique
Berthe = allouer un objet personne
Berthe:affecter_nom("Berthe aux grands pieds")

Clio est une voiture dynamique
Clio = allouer un objet voiture
Clio:affecter_proprietaire(Berthe)

maintenant, je veux pouvoir en manipulant mon objet Clio RECUPERER l'objet
Berthe, oui mais voilà je n'ai que son adresse ... Comment faire ???

Une solution consiste à faire le "transfert" :
proprio_de_la_clio est une personne dynamique
proprio_de_la_clio = allouer un objet personne
Transfert(&proprio_de_la_clio,clio:donner_proprietaire(),clio:donner_dimensi
on_proprio())

trace(proprio_de_la_clio:donner_nom()) // = "Berthe aux grands pieds"

C'est une solution ... mais qui ne me satisfait pas.
Je voudrais pouvoir accéder à mon objet dont je connais l'adresse plutot que
de le dupliquer. D'autant plus si je dois l'utiliser plus tard. Utiliser son
clone ne m'interesse absolument pas.

N'existe-t-il pas une autre solution ?
sachant que :
&proprio_de_la_clio = clio:donner_proprietaire()
provoque une erreur de synthaxe sur le "&"

Merci de votre aide.
Posted on September, 02 2004 - 1:07 PM
si vous affectez comme ca :

PROCEDURE affecter_proprietaire(adresse_une_personne)
:proprietaire = adresse_une_personne

Berthe est une personne dynamique
Berthe = allouer un objet personne
Clio est une voiture dynamique
Clio = allouer un objet voiture

Berthe:affecter_nom("Berthe aux grands pieds")
Clio:affecter_proprietaire(&Berthe)

ca donne quoi ?

dany wrote:
bonjour,

j'ai créé deux classes, personne et voiture.
La classe voiture a pour attribut "proprietaire" qui est un entier. La
méthode "affecter_proprietaire" a pour parametre un objet personne et on
affecte l'adresse de cet objet personne pour l'attribut "proprietaire"
// code simplifié
voiture est une classe
proprietaire est un entier // adresse d'un objet de la classe
personne
...
FIN
...
...
PROCEDURE affecter_proprietaire(une_personne)
:proprietaire = &une_personne
...

Le traitement que je souhaite effectuer, consiste à récupérer le
propriétaire d'une voiture.

logiquement j'ai fait le traitement suivant :
Berthe est une personne dynamique
Berthe = allouer un objet personne
Berthe:affecter_nom("Berthe aux grands pieds")

Clio est une voiture dynamique
Clio = allouer un objet voiture
Clio:affecter_proprietaire(Berthe)

maintenant, je veux pouvoir en manipulant mon objet Clio RECUPERER l'objet
Berthe, oui mais voilà je n'ai que son adresse ... Comment faire ???

Une solution consiste à faire le "transfert" :
proprio_de_la_clio est une personne dynamique
proprio_de_la_clio = allouer un objet personne
Transfert(&proprio_de_la_clio,clio:donner_proprietaire(),clio:donner_dimensi
on_proprio())

trace(proprio_de_la_clio:donner_nom()) // = "Berthe aux grands pieds"

C'est une solution ... mais qui ne me satisfait pas.
Je voudrais pouvoir accéder à mon objet dont je connais l'adresse plutot que
de le dupliquer. D'autant plus si je dois l'utiliser plus tard. Utiliser son
clone ne m'interesse absolument pas.

N'existe-t-il pas une autre solution ?
sachant que :
&proprio_de_la_clio = clio:donner_proprietaire()
provoque une erreur de synthaxe sur le "&"

Merci de votre aide.

Posted on September, 02 2004 - 1:43 PM
<BOUDOT Sébastien - Blue River System> a écrit dans le message de
news:4136e2a9$1@news.pcsoft.fr...

si vous affectez comme ca :

PROCEDURE affecter_proprietaire(adresse_une_personne)
:proprietaire = adresse_une_personne

Berthe est une personne dynamique
Berthe = allouer un objet personne
Clio est une voiture dynamique
Clio = allouer un objet voiture

Berthe:affecter_nom("Berthe aux grands pieds")
Clio:affecter_proprietaire(&Berthe)

ca donne quoi ?

dany wrote:
bonjour,

j'ai créé deux classes, personne et voiture.
La classe voiture a pour attribut "proprietaire" qui est un entier. La
méthode "affecter_proprietaire" a pour parametre un objet personne et on
affecte l'adresse de cet objet personne pour l'attribut "proprietaire"
// code simplifié
voiture est une classe
proprietaire est un entier // adresse d'un objet de la classe
personne
...
FIN
...
...
PROCEDURE affecter_proprietaire(une_personne)
:proprietaire = &une_personne
...

Le traitement que je souhaite effectuer, consiste à récupérer le
propriétaire d'une voiture.

logiquement j'ai fait le traitement suivant :
Berthe est une personne dynamique
Berthe = allouer un objet personne
Berthe:affecter_nom("Berthe aux grands pieds")

Clio est une voiture dynamique
Clio = allouer un objet voiture
Clio:affecter_proprietaire(Berthe)

maintenant, je veux pouvoir en manipulant mon objet Clio RECUPERER

l'objet
Berthe, oui mais voilà je n'ai que son adresse ... Comment faire ???

Une solution consiste à faire le "transfert" :
proprio_de_la_clio est une personne dynamique
proprio_de_la_clio = allouer un objet personne

Transfert(&proprio_de_la_clio,clio:donner_proprietaire(),clio:donner_dimensi
on_proprio())

trace(proprio_de_la_clio:donner_nom()) // = "Berthe aux grands pieds"

C'est une solution ... mais qui ne me satisfait pas.
Je voudrais pouvoir accéder à mon objet dont je connais l'adresse plutot

que
> > de le dupliquer. D'autant plus si je dois l'utiliser plus tard. Utiliser
son
clone ne m'interesse absolument pas.

N'existe-t-il pas une autre solution ?
sachant que :
&proprio_de_la_clio = clio:donner_proprietaire()
provoque une erreur de synthaxe sur le "&"

Merci de votre aide.




ca donne que :
clio:donner_proprietaire() me renvoit toujours une adresse et que je ne sais
pas comment faire pour acceder à l'objet pointé par cette adresse. :)
Posted on September, 02 2004 - 4:15 PM
en effet, j'ai répondu un peu vite.
les adresses avec windev ne sont pas aussi puissantes qu'en C ( par
exemple ), vous allez devoir passer par la fonction transfert et
utiliser un objet du type voulu qui va servir de "tampon" ( ou clone :p )



dany wrote:
<BOUDOT Sébastien - Blue River System> a écrit dans le message de
news:4136e2a9$1@news.pcsoft.fr...

si vous affectez comme ca :

PROCEDURE affecter_proprietaire(adresse_une_personne)
:proprietaire = adresse_une_personne

Berthe est une personne dynamique
Berthe = allouer un objet personne
Clio est une voiture dynamique
Clio = allouer un objet voiture

Berthe:affecter_nom("Berthe aux grands pieds")
Clio:affecter_proprietaire(&Berthe)

ca donne quoi ?

dany wrote:

bonjour,

j'ai créé deux classes, personne et voiture.
La classe voiture a pour attribut "proprietaire" qui est un entier. La
méthode "affecter_proprietaire" a pour parametre un objet personne et on
affecte l'adresse de cet objet personne pour l'attribut "proprietaire"
// code simplifié
voiture est une classe
proprietaire est un entier // adresse d'un objet de la classe
personne
...
FIN
...
...
PROCEDURE affecter_proprietaire(une_personne)
:proprietaire = &une_personne
...

Le traitement que je souhaite effectuer, consiste à récupérer le
propriétaire d'une voiture.

logiquement j'ai fait le traitement suivant :
Berthe est une personne dynamique
Berthe = allouer un objet personne
Berthe:affecter_nom("Berthe aux grands pieds")

Clio est une voiture dynamique
Clio = allouer un objet voiture
Clio:affecter_proprietaire(Berthe)

maintenant, je veux pouvoir en manipulant mon objet Clio RECUPERER

l'objet

Berthe, oui mais voilà je n'ai que son adresse ... Comment faire ???

Une solution consiste à faire le "transfert" :
proprio_de_la_clio est une personne dynamique
proprio_de_la_clio = allouer un objet personne


Transfert(&proprio_de_la_clio,clio:donner_proprietaire(),clio:donner_dimensi

on_proprio())

trace(proprio_de_la_clio:donner_nom()) // = "Berthe aux grands pieds"

C'est une solution ... mais qui ne me satisfait pas.
Je voudrais pouvoir accéder à mon objet dont je connais l'adresse plutot

que

de le dupliquer. D'autant plus si je dois l'utiliser plus tard. Utiliser

son

clone ne m'interesse absolument pas.

N'existe-t-il pas une autre solution ?
sachant que :
&proprio_de_la_clio = clio:donner_proprietaire()
provoque une erreur de synthaxe sur le "&"

Merci de votre aide.




ca donne que :
clio:donner_proprietaire() me renvoit toujours une adresse et que je ne sais
pas comment faire pour acceder à l'objet pointé par cette adresse. :)