C++ probleme accès méthode

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
Configuration: Windows XP
Internet Explorer 6.0

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    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)
    1. 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.
  2. Contributeur
    ce qui n'est pas propre, c'est ça :
    Case * c1 = new CaseImo(X,Y,Z);
    pourquoi passé par une Case ?