PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → classes abstraites (ou virtuelles)
classes abstraites (ou virtuelles)
Débuté par Jean, 24 juin 2005 17:22 - 6 réponses
Posté le 24 juin 2005 - 17:22
bonjour,
je cherche à créer une classe virtuelle "animal" est ses 2 sous classes "lapin" et "chat" pour avoir dans une meme liste des objets différents (des chats et des lapins)
je ne sais pas comment déclarer "animal" virtuelle et comment faire en sorte que les objets chat et lapin soient contenus dans la meme liste.
voici le code que j'ai:



animal est une classe
FIN

chat est une classe
hérite de animal
FIN

lapin est une classe
hérite de animal
FIN

liste est un tableau de 16 animal
mon_chat est chat
mon_lapin est lapin

liste[1]=mon_chat
liste[1]=mon_lapin


or à l'execution j'ai eun erreur "Il est impossible d'affecter un objet de classe chat dans un objet de classe animal."
comment windev gere t il les sous classes ? j'ai cherché dans la doc, mais elle est assez succinte sur le sujet.
Si quelqun pouvait mm'aider un peu, ca me dépannerait pas mal!
merci d'avance!!
Posté le 24 juin 2005 - 17:36
Jean a écrit :
bonjour,
je cherche à créer une classe virtuelle "animal" est ses 2 sous classes "lapin" et "chat" pour avoir dans une meme liste des objets différents (des chats et des lapins)
je ne sais pas comment déclarer "animal" virtuelle et comment faire en sorte que les objets chat et lapin soient contenus dans la meme liste.
voici le code que j'ai:



animal est une classe
FIN

chat est une classe
hérite de animal
FIN

lapin est une classe
hérite de animal
FIN

liste est un tableau de 16 animal
mon_chat est chat
mon_lapin est lapin

liste[1]=mon_chat
liste[1]=mon_lapin


or à l'execution j'ai eun erreur "Il est impossible d'affecter un objet de classe chat dans un objet de classe animal."
comment windev gere t il les sous classes ? j'ai cherché dans la doc, mais elle est assez succinte sur le sujet.
Si quelqun pouvait mm'aider un peu, ca me dépannerait pas mal!
merci d'avance!!


J'ai peur que le modele objets de Windev ne soit pas des plus avancé ...

Dam
Posté le 24 juin 2005 - 17:48
ah !
alors là ca me pose un gros pb.. y a t il une autre solution ??
merci d'avance
Posté le 24 juin 2005 - 18:23
je viens d'avoir la solution donc pour ceux qui auraient le meme probleme:

il faut déclarer
liste = tableau de 16 objet dynamique


dans ce cas, on peut lui affecter n'importe quel objet

voilou
@+ pour de nouvelles aventures avec mes lapins et mes chats...
Jean
Posté le 24 juin 2005 - 18:49
Bonjour,

Le polymorphisme ne fonctionne qu'avec des objets dynamiques. Ceci n'est pas
spécifique à WinDev, et la solution ci-dessous est valable pour tous les
langages.



animal est une classe
FIN

chat est une classe
hérite de animal
FIN

lapin est une classe
hérite de animal
FIN

liste est un tableau de 16 animal dynamique



liste[1]=allouer un chat

liste[1]=allouer un lapin.


--
Ed en Ligne


"Jean" <carjemanog@hotmail.com> a écrit dans le message de news:
42bbfe7a$1@news.pcsoft.fr...

bonjour,
je cherche à créer une classe virtuelle "animal" est ses 2 sous classes
"lapin" et "chat" pour avoir dans une meme liste des objets différents
(des chats et des lapins)
je ne sais pas comment déclarer "animal" virtuelle et comment faire en
sorte que les objets chat et lapin soient contenus dans la meme liste.
voici le code que j'ai:



animal est une classe
FIN

chat est une classe
hérite de animal
FIN

lapin est une classe
hérite de animal
FIN

liste est un tableau de 16 animal
mon_chat est chat
mon_lapin est lapin

liste[1]=mon_chat
liste[1]=mon_lapin


or à l'execution j'ai eun erreur "Il est impossible d'affecter un objet de
classe chat dans un objet de classe animal."
comment windev gere t il les sous classes ? j'ai cherché dans la doc, mais
elle est assez succinte sur le sujet.
Si quelqun pouvait mm'aider un peu, ca me dépannerait pas mal!
merci d'avance!!
Posté le 24 juin 2005 - 18:59
Re-bonjour,

Il vaut mieux typer les objets dynamiques. Avec cette solution vous perdez
les vérifs de compilation et la complétion du code. Je vous conseille d'utiliser
un tableau de animal dynamique (voir autre réponse).


--
Ed en Ligne


"Jean" <carjemanog@hotmail.com> a écrit dans le message de news:
42bc0cb7$1@news.pcsoft.fr...

je viens d'avoir la solution donc pour ceux qui auraient le meme probleme:

il faut déclarer
liste = tableau de 16 objet dynamique


dans ce cas, on peut lui affecter n'importe quel objet

voilou
@+ pour de nouvelles aventures avec mes lapins et mes chats...
Jean

Posté le 14 juillet 2005 - 19:52
MERCI !!!!!!

Je viens de lire ta solution et c vraiment trop Cool!


Zo