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 :

Héritage dans vecteurs


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Héritage dans vecteurs
    Bonjour,
    je cherche actuellement à créer un vector de classes filles héritées d'une seule et même classe mère. Malheureusement je ne suis pas encore trop à l'aise avec la programmation objet, je viens donc quérir votre aide.

    Je souhaite avoir une classe mère A dont dépendent plusieurs classes filles très différentes (B et C). Pour ce faire j'ai fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    class A {
    public:
    	A();
    	int p1;
    };
     
    class B : public A{
    public:
    	B();
    	int p2;
    };
     
    class C : public A{
    public:
    	C();
    	int p3;
    };
    Dans cet exemple je souhaite faire un vector de B et de C, qui héritent de A, B pouvant accéder à p1 et p2 tandis que C pouvant accéder à p1 et p3. p1 servant à différencier les classes filles. Je ne sais pas si c'est possible mais je n'ai pas réussi à l'implémenter convenablement jusqu'à maintenant.

    D'un point de vue moins théorique je souhaite créer une classe d'UI dans laquelle j'aurais notamment une liste d'Input (A) qui pourront être des boutons, des checkbox, des zones de texte, etc... (B, C). Il me faut donc pouvoir différencier les fonctions selon leur utilisation, mais elles ont toujours plusieurs fonctions en commun (print, click, etc...).

    Si vous pouvez m'aider je vous en serais redevable.
    Merci d'avoir lut et bonne journée

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    C'est possible avec un vecteur de pointeurs, mais ça reflète souvent un mauvais design. C'est souvent une indication qu'il faudrait laisser les classes elles-mêmes implémenter le comportement qui nécessite les variables p2 ou p3, dans une fonction membre virtuelle.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    C'est à dire ? Faire plusieurs vector pour chaque type de classe ? Ou mettre les variables dans ma classe mère même si elles ne sont pas utilisées ?

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 1
    Points : 4
    Points
    4
    Par défaut
    Ce que Médinoc veut dire, c'est que tu dois implémenter dans tes classes des fonctions virtuelles qui auront un comportement différent dans chacune des classes filles.

Discussions similaires

  1. empecher héritage dans liste à puce imbriquées
    Par zamanika dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 15/03/2007, 16h18
  2. Questions sur l'héritage dans Matisse
    Par Cassios dans le forum NetBeans
    Réponses: 8
    Dernier message: 15/03/2007, 00h23
  3. Problème d'heritage dans vecteur
    Par coco-loco dans le forum Langage
    Réponses: 3
    Dernier message: 07/02/2007, 12h28
  4. Relations d'héritage dans un SGBD
    Par mawi dans le forum Access
    Réponses: 3
    Dernier message: 18/04/2005, 16h15
  5. Relations d'héritage dans un SGBD
    Par mawi dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 14/04/2005, 00h51

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