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 :

Multi héritage et surcharge


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2012
    Messages : 4
    Par défaut Multi héritage et surcharge
    Hello,

    Je suis nouveau dans la prog c++, et je bloque sur cette situation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Class A : public base
    {
    protected:
    List_A myList;
    }
     
    Class A_derivee : public A
    {
    protected:
    List_A_derivee myList_derivee;
    }

    myList_derivee n'est pas pris en compte dans la class A.
    comment puis je faire pour substitué List_A myList par List_A_derivee depuis la classe A_derivee?

    Est ce possible ?

    D'avance merci.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    Il peux deux hiérarchies parallèles, et templatiser.

  3. #3
    Membre très actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 685
    Par défaut
    Citation Envoyé par rs1977 Voir le message
    Hello,

    Je suis nouveau dans la prog c++, et je bloque sur cette situation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Class A : public base
    {
    protected:
    List_A myList;
    }
     
    Class A_derivee : public A
    {
    protected:
    List_A_derivee myList_derivee;
    }

    myList_derivee n'est pas pris en compte dans la class A.
    comment puis je faire pour substitué List_A myList par List_A_derivee depuis la classe A_derivee?

    Est ce possible ?

    D'avance merci.
    Si tu te retrouve à avoir besoin d'infos dans la classe mère appartenant à la classe fille, il y a de sacrés chances pour que ce soit une erreur de conception.


    Pour substituer je ne sais pas, mais tu peux toujours remplacer le contenu de myList par celui de myListDerivee puis effacer myListDerivee. Si tu manipule des pointeurs, tu pourra mettre myListDerivee à nul. Mais ceci n'est pas une bonne solution hein.

    Revois ta conception.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Bonsoir,
    Citation Envoyé par rs1977 Voir le message
    myList_derivee n'est pas pris en compte dans la class A.
    Heureusement !
    myList_derivee est définie dans A_derivee, qui, aux yeux de A, n'existe pas !
    Une classe a connaissance d'elle-même et de ses classes mère, pas plus.

    Citation Envoyé par rs1977 Voir le message
    comment puis je faire pour substitué List_A myList par List_A_derivee depuis la classe A_derivee?
    Pourquoi vouloir "substituer" ?!
    Dans A_derivee, tu manipules ta liste dérivée, A manipule la liste qu'il contient.
    C'est à toi de fournir les getter/setter correspondant pour chaque classe.

    Mais je pense quand même qu'il s'agit d'une grosse erreur de conception. On dirait une façon de vouloir "faire comme" les templates sans les utiliser.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2012
    Messages : 4
    Par défaut
    Substitué n'est pas le bon terme, je veux que ma myList_derivee ait le meme comportement que myList mais avec ses propres "specialisations".

    En fait Class A et Class A_derviee sont des objects graphique mais pour l'un faut utiliser MyList et l'autre myListe_derivee.

    Peut etre que c'est mal concu mais tu y ferais comment ?

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    - y'a-t-il une vraie raison à dériver A_derivee de A ?
    - connais-tu le polimorphisme ?
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  7. #7
    Membre très actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 685
    Par défaut
    Si tu veux, tu peux mettre MyList en private et ne faire aucun getter. Comme ça tu n'aura aucune visibilité sur cet attribut dans ta classe dérivée.Mais ça reste bizarre comme conception.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2012
    Messages : 4
    Par défaut
    Merci à tous pour vos réponses et suggestions.
    En fait le plus simple dans mon cas est d'utiliser les classe template avec initialisation par defaut dans le constructeur.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/02/2008, 14h58
  2. [Problème] Héritage et surcharge
    Par kamykaze dans le forum C++
    Réponses: 8
    Dernier message: 13/11/2007, 14h18
  3. [POO] Héritage et surcharge de méthodes
    Par defkid dans le forum Langage
    Réponses: 4
    Dernier message: 26/02/2007, 14h51
  4. héritage et surcharge
    Par babar63 dans le forum C++
    Réponses: 7
    Dernier message: 17/01/2007, 23h23
  5. [G++] Héritage et surcharge de fonction
    Par Beuss dans le forum Autres éditeurs
    Réponses: 11
    Dernier message: 15/05/2006, 09h18

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