|
FOROS PROFESIONALES WINDEV, WEBDEV y WINDEV Mobile |
| | | | | |
Héritage avec passage de paramètre au constructeur |
Iniciado por guest, 12,oct. 2004 11:48 - 5 respuestas |
| |
| | | |
|
| |
Publicado el 12,octubre 2004 - 11:48 |
Je ne parviens pas à faire fonctionner l'héritage avec passage de paramètre au constructeur.
Voici un cas simple qui plante:
ClasseA est une classe
FIN
PROCEDURE Constructeur(p1) Info(p1)
ClasseB est une classe hérite de ClasseA FIN
PROCEDURE Constructeur(p1)
Le code : b est ClasseB(1) provoque l'erreur suivante:
Erreur à la ligne 0 du traitement Constructeur. Les paramètres d'appel du code Constructeur sont incorrects : on attendait 1 paramètres et on en a reçu 0.
par contre b est ClasseA(1) fonctionne.
Y'a t-il quelqu'un qui saurait m'expliquer ce qui se passe?
Merci d'avance
Chris |
| |
| |
| | | |
|
| | |
| |
Publicado el 12,octubre 2004 - 12:16 |
Dans ClasseB, le constructeur de la ClasseA est appelé par l'instruction hérite de ClasseA Il n'y a donc pas de paramètre passé ce qui provoque l'erreur.
Pour éviter l'erreur il faut que le ou les paramètres de ClasseA soient facultatifs.
Personnellement j'évite d'avoir à passer des paramètres au constructeur de la classe ancêtre et je fais la travail dans la classe dérivée. En cas d'impossibilité il est possible d'appeler le constructeur de ClasseA à partir de ClasseB mais le code du constructeur de Classe1 doit tenir compte du fait qu'il est appalé une fois sans paramètre puis un fois avec.
-- Cordialement
Patrick Bouquet pbouquet@pblogiciel.fr
"Chris" <guest@newsgroup.fr> a écrit dans le message de news:416b8316@news.pcsoft.fr...
Je ne parviens pas à faire fonctionner l'héritage avec passage de
paramètre au constructeur.
Voici un cas simple qui plante:
ClasseA est une classe
FIN
PROCEDURE Constructeur(p1) Info(p1)
ClasseB est une classe hérite de ClasseA
FIN
PROCEDURE Constructeur(p1)
Le code : b est ClasseB(1) provoque l'erreur suivante:
Erreur à la ligne 0 du traitement Constructeur. Les paramètres d'appel du code Constructeur sont incorrects : on attendait
1 paramètres et on en a reçu 0.
par contre b est ClasseA(1) fonctionne.
Y'a t-il quelqu'un qui saurait m'expliquer ce qui se passe?
Merci d'avance
Chris
|
| |
| |
| | | |
|
| | |
| |
Publicado el 12,octubre 2004 - 13:45 |
Merci pour la réponse.
Une petite précision, si tu ne passes pas de paramètres à la la classe ancêtre, utilises-tu quand même la classe ancêtre directement ?
Est-ce pour éviter un double appel au constructeur que tu évites les constructeur ancêtres avec passage de paramètres?
Cordialement,
Chris. |
| |
| |
| | | |
|
| | |
| |
Publicado el 12,octubre 2004 - 13:45 |
Merci pour la réponse.
Une petite précision, si tu ne passes pas de paramètres à la la classe ancêtre, utilises-tu quand même la classe ancêtre directement ?
Est-ce pour éviter un double appel au constructeur que tu évites les constructeur ancêtres avec passage de paramètres?
Cordialement,
Chris. |
| |
| |
| | | |
|
| | |
| |
Publicado el 12,octubre 2004 - 18:34 |
Vous trouverez une petite documentation sur l'utilisation de héritage et le passage de paralmètre au constructeur de la classe hérité à cette adresse : http://rbesset.net/modules/icontent/index.php… Rubrique Héritage
[DrCharly93]
"Chris" <guest@newsgroup.fr> a écrit dans le message de news: 416b8316@news.pcsoft.fr...
Je ne parviens pas à faire fonctionner l'héritage avec passage de paramètre au constructeur.
Voici un cas simple qui plante:
ClasseA est une classe
FIN
PROCEDURE Constructeur(p1) Info(p1)
ClasseB est une classe hérite de ClasseA
FIN
PROCEDURE Constructeur(p1)
Le code : b est ClasseB(1) provoque l'erreur suivante:
Erreur à la ligne 0 du traitement Constructeur. Les paramètres d'appel du code Constructeur sont incorrects : on attendait 1 paramètres et on en a reçu 0.
par contre b est ClasseA(1) fonctionne.
Y'a t-il quelqu'un qui saurait m'expliquer ce qui se passe?
Merci d'avance
Chris
|
| |
| |
| | | |
|
| | |
| |
Publicado el 13,octubre 2004 - 00:31 |
Il faut que les paramètres du constructeur de la classe ancêtre soient facultatifs car le constructeur est appelé automatiquement sans paramètres par : hérite de Classe A.
Ensuite, en fonction des besoins, on peut éventuellement faire un second appel du constructeur de ClasseA depuis le constructeur de ClasseB (dérivée) en passant des paramètres.
-- Cordialement
Patrick Bouquet pbouquet@pblogiciel.fr
"Chris" <guest@newsgroup.fr> a écrit dans le message de news:416b9e53$1@news.pcsoft.fr...
Merci pour la réponse.
Une petite précision, si tu ne passes pas de paramètres à la la classe
ancêtre, utilises-tu quand même la classe ancêtre directement ?
Est-ce pour éviter un double appel au constructeur que tu évites les
constructeur ancêtres avec passage de paramètres?
Cordialement,
Chris.
|
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|