IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Appel d'une méthode d'une classe dérivée avec le bon type


Sujet :

C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 11
    Points : 9
    Points
    9
    Par défaut Appel d'une méthode d'une classe dérivée avec le bon type
    Voilà,
    J'ai une classe mère virtuelle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    struct mere
    { virtual mere* clone() =0;}
    et un patron de classe qui dérive de la classe mere
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    template<class TYPE> struct enfant : public mere
    { TYPE a;
       const TYPE& getA() const { return a;}
       virtual enfant* clone { return enfant(this);}
       enfant(TYPE i) : a(i)  {}
    }
    et finalement un tableau qui contient 10 pointeur
    mere*.

    Je voudrais pouvoir faire une boucle pour afficher les éléments de mon tableau du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    for (int j=0; j<10; j++) { std::cout Tab[j]->getA();}
    Evidemment en l'état j'obtiens une erreur de compilation car la méthode
    getA() ne fait pas partie de la classe mere.

    Y'a t'il une manière élégante de résoudre ce problème sans passer par autant de dynamic_cast qu'il y a de TYPE possible ?

    Merci de votre aide.

  2. #2
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 279
    Points : 11 015
    Points
    11 015
    Par défaut
    Hum... Définir une fonction virtuelle writeA(std::ostream&) dans la classe mère, que tu redéfiniras dans la classe fille ?
    Sinon mauvais design. Pourquoi mélanger haricots et chemises dans le même panier ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par Luc Hermitte
    Hum... Définir une fonction virtuelle writeA(std::ostream&) dans la classe mère, que tu redéfiniras dans la classe fille ?
    Sinon mauvais design. Pourquoi mélanger haricots et chemises dans le même panier ?
    En fait J'ai une liste de Tableaux, que je dois gérer dans une liste "ListDeTab" : insertion, suppression, modification d'un des tableaux en particulier...

    Ca paraissait une bonne idée de réunir ces éléments hététogènes (mais ayant un lien) dans un même tableau.

    J'ai trouvé quelques moyens de m'en sortir avec dynamic_cast. Le problème c'est que si un utilisateur rajoute son TYPE à l'application, il faut réécrire la partie correspondante dédiée à l'affichage, l'insertion, suppression...

    Je ne sais pas si je suis clair, en tout cas merci de ta réponse.

Discussions similaires

  1. [Free Pascal] 64 bits : appel dans un thread d'une méthode d'une librairie dynamique
    Par Invité dans le forum Free Pascal
    Réponses: 0
    Dernier message: 21/04/2013, 16h20
  2. [PHP 5.3] [POO] Appel d'une méthode dans une méthode
    Par yann18 dans le forum Langage
    Réponses: 6
    Dernier message: 20/10/2011, 09h56
  3. Appeler une méthode d'une applet dans une jsp
    Par salmoucha10 dans le forum Applets
    Réponses: 1
    Dernier message: 11/01/2011, 19h25
  4. Réponses: 6
    Dernier message: 20/04/2007, 15h24
  5. "ajouter une méthode dans une méthode"
    Par Zorgloub dans le forum Langage
    Réponses: 1
    Dernier message: 09/04/2006, 12h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo