C++ probleme accès méthode

Fermé
cppman Messages postés 2 Date d'inscription vendredi 16 mars 2007 Statut Membre Dernière intervention 16 mars 2007 - 16 mars 2007 à 13:15
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 19 mars 2007 à 08:43
Bonjour,

j'ecrit un programme c++ sous window et j'ai un petit probleme qui est le suivant:

j'ai 2 classes: Case et CaseImmo qui hérite de Case lorsque j'instancie de la maniere suivante:

Case * c1 = new CaseImo(X,Y,Z);

à partir de c1 de type static case je n'arrive pas a acceder au methodes du type dynamic CaseImmo, ex:

dans la classe CaseImmo jai une methode getId() qui n'est pas dans la classe case et lorsue je fait : c1->getId() le compilateur me retourne l'erreur: class Case has no member getId()... MErci de m'aider

2 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
16 mars 2007 à 14:01
Salut.
D'après certaine personne, c'est pas très propre de faire comme ça.
Pour accéder à ton membre, il faut faire :
((CaseImmo*)c1)->getId();
et là ça devrais fonctionner.
Une autre solution serait de déclarer une méthode getId() dans Case de manière virtuelle (à tester, je ne suis pas sur que ça fonctionne)
0
cppman Messages postés 2 Date d'inscription vendredi 16 mars 2007 Statut Membre Dernière intervention 16 mars 2007
16 mars 2007 à 19:53
Merci de m'avoir répondu ta méthode en castant fonctionne juste je trouve pas ca super propre , enfin ca marche merci si d'autre personne pouvait me donner leur avis ca serais sympa.
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
19 mars 2007 à 08:43
ce qui n'est pas propre, c'est ça :
Case * c1 = new CaseImo(X,Y,Z);
pourquoi passé par une Case ?
0