PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Héritage avec passage de paramètre au constructeur
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.