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 de classe


Sujet :

C++

  1. #1
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 136
    Points : 115
    Points
    115
    Par défaut Héritage de classe
    Bonjour,

    J'ai défini trois classe de la façon suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    [ ClassA ] -----
                    !
                    +----[ ClassMere ]
                    !
    [ ClassB ] -----
    la seul différence entre la classA et la ClassB est le contenu d'une méthode MethGenerique.
    dans le futur, il y aura une ClassC, ClassD, etc...

    Le problème est dans le fait que dans mon prog, je dois appeler la méthode MethGenerique avec un pointeur de type ClassMere (ils sont stocké dans un std::vector) mais avec des valeurs de paramètres différent.

    aujourd'hui, je pense que je vais créer un enum pour pouvoir différencier mes classes, mais je trouve ca dommage! j'aime pas trop utiliser les switch pour ce genre de chose!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for( iterObject = vect_ClassMere.begin(); iterObject != ClassMere.end(); iterObject ++)
    {
            switch ( (*iterObject)->typeObjet )
            {
             ...
            }
    }
    n'y aurait il pas une solution plus propre que permet le c++ pour récupérer le type de l'objet?

  2. #2
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    mais avec des valeurs de paramètres différent.
    C'est assez vague. Qu'est ce qui diffère ? Les types de paramètres ? Le nombre ? Les deux ?

    De façon générale, hors contexte, c'est assez difficile de répondre. Mais de toute façon, la solution de dynamic_caster/enum couplé à switch/tout truc dans le même genre est très souvent une mauvaise solution.

  3. #3
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 136
    Points : 115
    Points
    115
    Par défaut
    Les classes sont identiques.
    En fait, ClassA, ClassB etc ont chacune besoin d'un handle d'événement différent.
    Seulement, le "hic", c'est qu'elle ne peuvent le gérer seule.
    je suis obligé de le leur fournir! c'est la classe qui les appelles qui gère ces handle.
    tout le problème est la.

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Tu ne peux pas abstraire ce handle dans une classe générique déclinée ensuite selon tes classes A et B?

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Points : 1 543
    Points
    1 543
    Par défaut
    Salut,

    Le handle change au cours du temps ? Tu ne peux pas tout simplement le fournir lors de la construction des ClassA et ClassB ?

    MAT.

  6. #6
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 136
    Points : 115
    Points
    115
    Par défaut
    Mat007:
    Je ne gère pas leur création dans la classe qui gère les handles.
    Le handle risque dans le futur d'évoluer aussi dans le temps.

    3DArchi:
    Je ne comprend pas le principe:
    si je met le handle dans une classe, comment elle vas deviner quel handle renvoyer?

  7. #7
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 512
    Points : 641
    Points
    641
    Par défaut
    Je comprend pas grand chose a ce que tu veux faire ?
    Si tout tes objets ont un handle, je metterais le handle comme membre de la classe mère.
    Si il sert a identifier chaque objet il faut l'initialiser à la construction de l'objet.

    Citation Envoyé par zenetcalme
    si je met le handle dans une classe, comment elle vas deviner quel handle renvoyer?
    On ne sait a quoi sert ton handle, comment on va en deviner ce qu'il faut en faire ?

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 352
    Points : 36 879
    Points
    36 879
    Par défaut
    Je ne comprend pas l'intérêt de dériver dans ce cas. Ne serait-il pas plus simple de composer la classe avec son handle et encapsuler le tout.
    ?
    - W

  9. #9
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 136
    Points : 115
    Points
    115
    Par défaut
    Je vais essaye d'expliquer un peu le fonctionnement.

    Dans l'objet de gestion qui contient un thread:

    1 - Je crée autant de handle que j'ai d'interface de communication.
    2 - J'utilise ces handle lors de l'appel des objets de type AA qui DOIVENT hériter d'un autre objet (comme sur le schéma tout en haut) pour intitialiser les interfaces.

    3 - dans une thread, j'appelle un autre objet de type BB (comme sur le schema d'en haut) qui a besoin du handle qui correspond à l'interface de communication qu'il gère pour recevoir des informations entre autre.

    ce n'est pas dans l'objet de gestion que je crée tout ces objets. ils viennent "s'enregistrer" automatiquement et ce sont des pointeurs du type de leur parent!

    pour l'instant, j'ai fait un "if", mais ça vas être la galère à chaque ajout d'interface de communication...
    un switch allégerais la chose, mais je pense que le c++ peut faire mieux!

Discussions similaires

  1. conflit d'inclusions et Héritage de classe
    Par gedeon555 dans le forum C++
    Réponses: 7
    Dernier message: 01/10/2006, 19h48
  2. [POO] Problème héritage des classes PHP4
    Par zana74 dans le forum Langage
    Réponses: 2
    Dernier message: 15/08/2006, 16h00
  3. Héritage de classes.
    Par Berzerk_ dans le forum C++
    Réponses: 48
    Dernier message: 13/08/2006, 23h48
  4. [POO] Héritage vs classe dans une classe
    Par robichou dans le forum Langage
    Réponses: 4
    Dernier message: 06/08/2006, 23h51
  5. [OO] Héritage - Mixins Classes
    Par djmalo dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 01/03/2005, 23h16

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