|
(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.
|
| |
| |
| | | |
|
| | | | |
| | |
|