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 :

dangers de l'héritage multiple


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut dangers de l'héritage multiple
    salut,

    je me rappel vraiment plus , mais on m'avait mis en garde contre certains dangers de l'héritage multiple en c++.

    Qui peut m 'en dire plus merci bcp d'avance.

    Pour ma part, il me semble qu'a part des fonctions ou membres portant le meme nom, on ne devrait pas rencontrer de difficultées...

    les pros, vous en dites quoi ?

  2. #2
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2007
    Messages : 52
    Par défaut
    Le vrais danger c'est l'héritage en diamant

    class A
    {
    int val;
    }
    class B : public A
    {
    initialise, dans le constructeur val à 5
    }
    class C : public A
    {
    initialise, dans le constructeur val à 8
    }

    class D : public B, public C
    {
    QUE VAUX VAL???
    }

  3. #3
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut
    Citation Envoyé par Mizar75
    QUE VAUX VAL???
    ben bonne question alors.

  4. #4
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2007
    Messages : 52
    Par défaut
    Idem pour une methode virtuel défini dans A et implementé dans B et C.

    Si on l'appel depuis D quel code va s'executer?

  5. #5
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Ceci est solutionné par l'héritage virtuel

  6. #6
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2007
    Messages : 52
    Par défaut
    Citation Envoyé par Alp
    Ceci est solutionné par l'héritage virtuel
    C'est quoi?

  7. #7
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 868
    Par défaut
    Salut,

    Selon moi, la possibilité de faire de l'héritage multiple est une bonne chose.

    Je suis un peu triste que des langages comme Java ou C# ne permettent pas de faire de l'héritage multiple, car au final les problèmes qui y sont liés ne sont rien de plus que des erreurs de modélisation. A mon avis, le fait que des langages comme Java ou C# ont fait l'impasse dessus, réside dans la complexité de compilation liée à cette fonctionnalité qui aurait impliqué une certaine lenteur -> pour un langage semi-compilé, c'est gênant.

    L'héritage multiple est cependant une fonctionnalité importante et utile lorsqu'on fait une application complexe. En C++ par exemple, quand on prend soin de faire un bon design, l'héritage multiple n'est jamais problématique.

    Je me suis fait à la programmation par interfaces, mais il y a des situations où on sent bien que l'héritage multiple aurait été la solution la plus élégante et intuitive.. Et il est dommage de devoir utiliser des ruses pour imiter quelque chose d'aussi simple dans le concept

    A+

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

Discussions similaires

  1. composants C++ Builder et héritage multiple
    Par vedrfolnir dans le forum C++Builder
    Réponses: 2
    Dernier message: 12/10/2005, 10h04
  2. [heritage][conception]héritage multiple en java!
    Par soulhouf dans le forum Langage
    Réponses: 9
    Dernier message: 25/08/2005, 20h03
  3. L'héritage multiple est-il possible en Delphi ?
    Par SchpatziBreizh dans le forum Langage
    Réponses: 8
    Dernier message: 30/06/2005, 11h30
  4. utilisez vous l'héritage multiple ?
    Par vodosiossbaas dans le forum C++
    Réponses: 8
    Dernier message: 13/06/2005, 20h25
  5. [XML Schemas]héritage multiple
    Par nicolas_jf dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 10/06/2003, 12h55

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