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 :

niveau d'héritage ?


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut niveau d'héritage ?
    Bonjour,
    j'ai une class A qui herite de B, B hérite de C etc, etc, etc

    Pour vous qu'elle devrait être le niveau maximum pour les héritage successive?
    Pour moi, 4-5 est le maximum. Aprés je pense que c'est une mauvaise conception des class
    merci

  2. #2
    Membre Expert

    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
    Par défaut
    Salut,

    Pour moi : 3.

    Une interface (que des virtuelles pures), une classe abstraite (qui factorise des traitements) en-dessous et des classes concrètes encore en-dessous.
    Sachant qu'en pratique la classe abstraite n'apparaît que lors d'un remaniement pour réduire une duplication dans les classes concrètes...

    MAT.

  3. #3
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Je ne crois pas qu'il soit opportun de se placer des limites trop strictes à ce sujet.

    Si le point de vue de Mat est tout à fait sensé en générale, il n'en demeure pas moins qu'il m'est déjà arrivé d'avoir 5 niveau d'héritage, tout en respectant pleinement le principe énoncé dans effective C++ (ou est-ce l'un des autres ) d'avoir recours à l'héritage pour spécialiser, et non pour implémenter.

    Mais, si tu mets une limite aux niveaux d'héritage, tu risque de te retrouver face à un problème lorsqu'il s'agira - par exemple - de modéliser les différents êtres vivants.

    En effet, bien que cela ne respecte plus forcément le principe de la spécialisation cher à Ac++, si tu dois modéliser les différentes classes, ordres, sous classes, sous ordres et autres de l'évolution, tu n'auras pas le choix, et tu te retrouvera très rapidement avec 8 à 10 niveaux d'héritage... si pas plus.

    Et ce n'est pas un domaine isolé, car il serait aussi possible de parler des classes représentant les éléments visuels d'une interface graphique et tant d'autres domaines

    De plus, on peut estimer que, si la norme prévoit qu'un compilateur qui la respecte doit au minimum pouvoir supporter 16384 classe de base directes ou indirectes, c'est que le comité ne voulait en tout cas pas placer de restriction trop subjective en la matière, même si l'idée n'est visiblement pas d'inciter les gens à respecter Ac++
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Bien sur, y as toujours des exceptions.
    Ce que je veut dire c'est quand on arrive à un certain niveau, il faut mieux se demander pourquoi.

    Citation Envoyé par koala01 Voir le message
    En effet, bien que cela ne respecte plus forcément le principe de la spécialisation cher à Ac++, si tu dois modéliser les différentes classes, ordres, sous classes, sous ordres et autres de l'évolution, tu n'auras pas le choix, et tu te retrouvera très rapidement avec 8 à 10 niveaux d'héritage... si pas plus.
    Pourquoi de pas plustôt utiliser des class poltique ?

    ps :C'est quoi Ac++?

  5. #5
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Citation Envoyé par Mongaulois Voir le message
    Bien sur, y as toujours des exceptions.
    Ce que je veut dire c'est quand on arrive à un certain niveau, il faut mieux se demander pourquoi.
    Nous sommes donc bien d'accord...

    Je voulais principalement attirer l'attention sur le fait que je n'ai rien contre le fait de se donner une limite, pour autant qu'elle soit appliquée de manière raisonnée : je suis pour la rigueur, mais contre la rigidité
    Pourquoi de pas plustôt utiliser des class poltique ?
    Une classe politique permettra de faire la distinction entre le kangourou et le koala - qui sont tous les deux des marsupiaux - mais il sera bien plus difficile de faire la distinction entre un éléphant - qui est un parchiderme - et une vache - qui est un bovidé - avec une classe politique, alors que tous deux sont des mammifères
    ps :C'est quoi Ac++?
    C'est "Advenced C++", qui est l'un des bouquins de la même veine que (more) effective C++ et consors
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  6. #6
    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
    Citation Envoyé par Mat007 Voir le message
    Salut,

    Pour moi : 3.

    Une interface (que des virtuelles pures), une classe abstraite (qui factorise des traitements) en-dessous et des classes concrètes encore en-dessous.
    Sachant qu'en pratique la classe abstraite n'apparaît que lors d'un remaniement pour réduire une duplication dans les classes concrètes...

    MAT.
    Tu veux dire que le pire cas à envisager c'est l'héritage en diamant ?

    Citation Envoyé par Mongaulois Voir le message
    Pourquoi de pas plustôt utiliser des class poltique ?

    ps :C'est quoi Ac++?
    J'en connais un qui a lu mon article Ca fait toujours plaisir.

    Normalement AC++ c'est pour Accelerated C++

  7. #7
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    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 296
    Par défaut
    Citation Envoyé par koala01 Voir le message
    C'est "Advanced C++", qui est l'un des bouquins de la même veine que (more) effective C++ et consors
    Le Coplien? Tu fais bien de préciser le titre du livre, car beaucoup comprennent Accelerated C++ quand on dit AC++.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  8. #8
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par koala01 Voir le message
    Une classe politique permettra de faire la distinction entre le kangourou et le koala - qui sont tous les deux des marsupiaux - mais il sera bien plus difficile de faire la distinction entre un éléphant - qui est un parchiderme - et une vache - qui est un bovidé - avec une classe politique, alors que tous deux sont des mammifères
    parchiderme ( pour une fois que c'est pas moi), bovidé, ... ce n'est que du classement.
    On pourrais faire une class mono cellulaire et une multi-cellulaire qui utilise des politiques pour :
    - environnement
    - mode de déplacement
    - mode de nutrition
    - ...

    Car avec l'héritage, un pachyderme ne pourra plus jamais évoluer vers un bovidé (ouai bon c'est un peu n'importe quoi...mais c'est le principe) hors l'évolution pourrais très bien vouloir rapprocher un éléphant et une vache vers une même famille....

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/08/2014, 00h07
  2. Programme d'étude sur le C++ bas niveau n°11 : Héritage
    Par germinolegrand dans le forum C++
    Réponses: 9
    Dernier message: 03/04/2014, 12h24
  3. [SP-2007] Problème d'héritage au niveau des autorisations
    Par cekamb72 dans le forum SharePoint
    Réponses: 1
    Dernier message: 14/05/2012, 14h10
  4. Ambiguité au niveau héritage
    Par fsidiosidi dans le forum Langage
    Réponses: 4
    Dernier message: 21/05/2010, 13h45
  5. problème au niveau de l'héritage, ou autre chose
    Par lotus0o dans le forum Langage
    Réponses: 5
    Dernier message: 04/06/2007, 11h54

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