PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → (POO) : comment faire une interface ou l'équivalent ?
(POO) : comment faire une interface ou l'équivalent ?
Débuté par johjo, 24 aoû. 2004 23:24 - 3 réponses
Posté le 24 août 2004 - 23:24
Bonsoir à tous.
Dans l'application que je suis en train de développer, je suis bloqué car
je dois utiliser le principe de l'interface (disponible dans la plupart des
langages objets) mais il semble que windev n'utilise pas ce concept.

Quelqu'un pourrait-il me renseigner ?

Sinon, je pourrais peut-être trouver une solution à mon problème si je pouvais
caster le format d'un objet d'une classe B au format d'une classe A (en sachant
que B est dérivé de A). Comment faire ?

Merci d'avance à ceux qui me répondront.
Posté le 25 août 2004 - 11:39
Je ne crois pas que le transtypage soit possible avec Windev en POO.

Si vous décrivez le pb exact que vous rencontrez , peut etre trouverons
nous une solution ?

Johjo wrote:

Bonsoir à tous.
Dans l'application que je suis en train de développer, je suis bloqué car
je dois utiliser le principe de l'interface (disponible dans la plupart des
langages objets) mais il semble que windev n'utilise pas ce concept.

Quelqu'un pourrait-il me renseigner ?

Sinon, je pourrais peut-être trouver une solution à mon problème si je pouvais
caster le format d'un objet d'une classe B au format d'une classe A (en sachant
que B est dérivé de A). Comment faire ?

Merci d'avance à ceux qui me répondront.
Posté le 25 août 2004 - 14:53
Je ne crois pas que le transtypage soit possible avec Windev en POO.

Si vous décrivez le pb exact que vous rencontrez , peut etre trouverons


nous une solution ?

Johjo wrote:

Bonsoir à tous.
Dans l'application que je suis en train de développer, je suis bloqué

car
>> je dois utiliser le principe de l'interface (disponible dans la plupart
des
langages objets) mais il semble que windev n'utilise pas ce concept.

Quelqu'un pourrait-il me renseigner ?

Sinon, je pourrais peut-être trouver une solution à mon problème si je

pouvais
>> caster le format d'un objet d'une classe B au format d'une classe A (en
sachant
que B est dérivé de A). Comment faire ?

Merci d'avance à ceux qui me répondront.



Merci pour me proposer votre aide, mais en fait, j'ai réussi à trouver une
solution à mon problème (étant habitué aux langages comme le C, C++ ou C#,
elle ne me plait pas trop, mais on fait avec).

Pour ceux qui auraient le même problème, voici comment j'ai fait.

Admettons que l'on ai des classe classA, classB et classC avec classC dérivé
de classB. ClassA possède une méthode affiche(obj est une classB).

Si dans cette méthode, on veut appeler un objet de classB (qui dérive de
classA), il faut modifier la signature de la méthode (on retire "est une
classB").
Ce qui donne : affiche(obj). Puisque le transtypage n'existe pas, il faut
demander un objet sans type en particulier, ainsi, tous les objets passés
en paramètres peuvent être utilisés.

Ce manque de rigueur dans la syntaxe est un peu frustrant, car on peut passer
toute sorte d'objet, même ceux qui n'héritent pas de classB, mais bon, on
fait comme on peut.
Posté le 25 août 2004 - 19:06
Je suis pas certains d'avoir compris ce que tu voulais faire mais moi, toutes
mes classes sont typées ( héritent toujours au minimum d'une classe dédiée
à la description ) et je fais des check sur un membre commun pour savoir
sur quel type d'objet je travaille... c'est facilement réalisable avec l'héritage
multiple, non dispo en C# et remplacé justement par les interfaces...

Bon, ben y'a des solutions quand même alors... en Windev, le plus important,
c'est pas vraiment la manière mais le résultat final !

Bon Dev


Merci pour me proposer votre aide, mais en fait, j'ai réussi à trouver une
solution à mon problème (étant habitué aux langages comme le C, C++ ou C#,
elle ne me plait pas trop, mais on fait avec).

Pour ceux qui auraient le même problème, voici comment j'ai fait.

Admettons que l'on ai des classe classA, classB et classC avec classC dérivé
de classB. ClassA possède une méthode affiche(obj est une classB).

Si dans cette méthode, on veut appeler un objet de classB (qui dérive de
classA), il faut modifier la signature de la méthode (on retire "est une
classB").
Ce qui donne : affiche(obj). Puisque le transtypage n'existe pas, il faut
demander un objet sans type en particulier, ainsi, tous les objets passés
en paramètres peuvent être utilisés.

Ce manque de rigueur dans la syntaxe est un peu frustrant, car on peut passer
toute sorte d'objet, même ceux qui n'héritent pas de classB, mais bon, on
fait comme on peut.