Instanciation d'une classe fille
hsmr
-
hsmr Messages postés 6 Statut Membre -
hsmr Messages postés 6 Statut Membre -
Bonjour,
Je suis nouveau sur ce forum. Et j'ai une question au sujet de l'héritage d'une classe abstraite. Ma classe fille F hérite d'une classe mere M qui est abstraite ( donc avec des méthodes virtuelles pures). Lors de l'implementation de la classe fille F je fais appelle au constructeur de la classe mere. Mais lors de la compilation, le compilateur rale en me disant qu'il n'a pas le droit d'instancier la classe mère M dans la classe fille F à cause de son abstration.
Une idée pour m'aider svp ?
Merci
Je suis nouveau sur ce forum. Et j'ai une question au sujet de l'héritage d'une classe abstraite. Ma classe fille F hérite d'une classe mere M qui est abstraite ( donc avec des méthodes virtuelles pures). Lors de l'implementation de la classe fille F je fais appelle au constructeur de la classe mere. Mais lors de la compilation, le compilateur rale en me disant qu'il n'a pas le droit d'instancier la classe mère M dans la classe fille F à cause de son abstration.
Une idée pour m'aider svp ?
Merci
A voir également:
- Comment draguer une fille de même classe
- Ia pour draguer une fille - Accueil - Intelligence artificielle
- Ouvrez cette page. dans le code de la page, modifiez la couleur de fond de la classe .pix. un code de 4 chiffres doit apparaître dans la grille. lequel ? ✓ - Forum Programmation
- Mister you feat fille - Forum Musique / Radio / Clip
- Moi fille du roi ✓ - Forum Liseuse eBook
- Retrouver la liste des élèves d'une classe - Forum Discussions générales
3 réponses
Bjour,
Une classe Abstraite, sauf erreur de ma part, ne comporte pas de constructeur mais que des méthodes.
Elle ne peut être instanciée mais seulement dérivée et toutes ses méthodes doivent être redéfinies dans ta classe fille.
Salutations.
Une classe Abstraite, sauf erreur de ma part, ne comporte pas de constructeur mais que des méthodes.
Elle ne peut être instanciée mais seulement dérivée et toutes ses méthodes doivent être redéfinies dans ta classe fille.
Salutations.
Additif,
Les méthodes des classes abstraites ne sont pas définies mais simplement déclarées.
Ta classe fille doit implémenter ces méthodes mais tu n'est pas obligé de les définir si tu ne veux pas les utiliser.
Nuances (:>).
Salutations.
Les méthodes des classes abstraites ne sont pas définies mais simplement déclarées.
Ta classe fille doit implémenter ces méthodes mais tu n'est pas obligé de les définir si tu ne veux pas les utiliser.
Nuances (:>).
Salutations.
Tu parles de quoi là ?
Quel logiciel, tu essaie de faire quoi ?
On est censé tout deviner par télépathie ?
Quel logiciel, tu essaie de faire quoi ?
On est censé tout deviner par télépathie ?
Bjr
Je parle de faire hériter une classe fille d'une classe mère abstraite. Désolé je suis en C++ j'oubliais.
Bref :
- une classe Figure abstraite qui contient une seule donnée membre.
- une classe Rectangle fille qui hérite de la classe mere abstraite Figure.
Ma classe Figure contient des méthodes virtuelles pures donc elle est abstraite; J'y ai mis un constructeur.
Dans la classe Rectangle qui hérite de la classe Figure j'ai écrit un constructeur dans lequel je rappelle le constructeur de la classe Figure.
Et à la compile j'ai un message d'erreur me disant que la classe Figure ne peut être instancié du fait qu'elle est abstraite.
Je ne comprends pas trop cette erreur car j'étais avant en java et je bascule en C++. Donc mon adaptation est un peu délicate du fait des comportements différents de ces deux langages.
Merci
Je parle de faire hériter une classe fille d'une classe mère abstraite. Désolé je suis en C++ j'oubliais.
Bref :
- une classe Figure abstraite qui contient une seule donnée membre.
- une classe Rectangle fille qui hérite de la classe mere abstraite Figure.
Ma classe Figure contient des méthodes virtuelles pures donc elle est abstraite; J'y ai mis un constructeur.
Dans la classe Rectangle qui hérite de la classe Figure j'ai écrit un constructeur dans lequel je rappelle le constructeur de la classe Figure.
Et à la compile j'ai un message d'erreur me disant que la classe Figure ne peut être instancié du fait qu'elle est abstraite.
Je ne comprends pas trop cette erreur car j'étais avant en java et je bascule en C++. Donc mon adaptation est un peu délicate du fait des comportements différents de ces deux langages.
Merci
Re,
Exemple d'un appel d'un constructeur de la classe Mere à l'appel du constructeur de la classe fille :
Fille::Fille(void) : Mere(2)
{
printf("Exécution du constructeur de la classe fille.\n");
return;
}
Il faut spécifier explicitement le nom du constructeur de la super-classe avec ses paramètres : c'est l'équivalent du super() en Java.
A+.
Exemple d'un appel d'un constructeur de la classe Mere à l'appel du constructeur de la classe fille :
Fille::Fille(void) : Mere(2)
{
printf("Exécution du constructeur de la classe fille.\n");
return;
}
Il faut spécifier explicitement le nom du constructeur de la super-classe avec ses paramètres : c'est l'équivalent du super() en Java.
A+.
Re,
Je n'ai pour ma part jamais entendu parlé de la possibilité d'effectuer un appel explicite de constructeur de super-classes abstraites.
Il me semble que définir un constructeur pour ce type de classe reste un peu "exotique" comme pratique en C++ mais j'avoue que je ne me suis jamais vraiment penché sur la question (:<) mais je vais me renseigner et on se tient au courant.
A+.
Je n'ai pour ma part jamais entendu parlé de la possibilité d'effectuer un appel explicite de constructeur de super-classes abstraites.
Il me semble que définir un constructeur pour ce type de classe reste un peu "exotique" comme pratique en C++ mais j'avoue que je ne me suis jamais vraiment penché sur la question (:<) mais je vais me renseigner et on se tient au courant.
A+.