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

Langage C++ Discussion :

Constructeur par défaut d'une classe fille lorsque la classe mère n'implémente pas de constructeur par défaut


Sujet :

Langage C++

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2015
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Constructeur par défaut d'une classe fille lorsque la classe mère n'implémente pas de constructeur par défaut
    Bonjour,

    c'est mon premier post ici, je suis fraîchement diplômé et embauché dans une entreprise de développement logiciel dans laquelle je code en C++ (langage nouveau pour moi).

    Ma question concerne les constructeurs de classe par défaut :

    Actuellement, j'ai une classe fille qui hérite d'une classe mère n'implémentant pas de constructeur par défaut. Ma question : est-il possible d'implémenter un constructeur par défaut pour la classe fille ou est-ce une abération ?

  2. #2
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    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 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Tu peux. Mais tu devras appeler un des constructeurs paramétré de ta classe mère.
    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...

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

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 612
    Points
    30 612
    Par défaut
    Salut, et bienvenue sur le forum

    De manière générale, les classes qui interviennent dans une hiérarchie de classe ont sémantique d'entité, ce qui implique que tous les objets que tu pourras créer au départ de ces classes seront identifiables de manière unique et non ambigue par rapport aux autres.

    Bien sur, l'adresse mémoire à laquelle se trouve l'objet représente sans doute le "moyen ultime" d'identifier un objet particulier, mais l'expérience montre qu'il y a très souvent au moins une donnée, parmi celles qui sont utilisées par la classe de base, qui est dédiée à aider ton objet à être identifié de manière unique.

    La meilleure preuve du fait que l'on est dans ce genre de situation est que tu n'as absolument pas de constructeur par défaut pour ta classe de base et que, quel que soit le type dérivé que tu puisse envisager de créer, il faudra bien fournir l'information qui permettra, à ta classe de base, d'être identifiée de manière unique et non ambigüe.

    Dés lors, oui, bien sur, luc te l'a confirmé : il n'y a rien qui t'interdise de fournir un constructeur par défaut qui fournira une valeur "arbitraire" au constructeur paramétré de ta classe de base. Mais la vraie question que tu devrais te poser, c'est : est-ce que cela a réellement du sens

    Et la réponse à cette question est généralement, tout simplement : "non".

    De manière générale, les seules classes pour lesquelles il peut effectivement être envisageable de prévoir un constructeur par défaut (ne prenant aucun paramètre) seront des classes présentant une sémantique de valeur, qui est totalement incompatible avec la notion d'héritage
    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
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    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 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Ce n'est ni forcément arbitraire, ni nécessairement une maladresse de conception.
    On peut avoir une classe abstraite, qui va fournir un service plus ou moins générique, et pour fonctionner, il est nécessaire de positionner certains arguments. On peut avoir des classes filles qui positionnent justement en dur ces paramètres.
    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...

Discussions similaires

  1. appel d'une methodes classe fille de type classe mere
    Par Mephista dans le forum Langage
    Réponses: 8
    Dernier message: 29/10/2011, 23h05
  2. [MySQL] Listing des entrées d'une table fille depuis listing table mère
    Par Romain_33 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 16/05/2009, 00h48
  3. [Doxygen]Commenter une fonction héritée depuis la classe fille
    Par khazna dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 31/01/2009, 14h20
  4. appel d'une page fille et retour page mère avec données
    Par beabea dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 09/01/2009, 16h53
  5. Accèder à une classe fille depuis la classe mère
    Par Phreak0x dans le forum Windows Forms
    Réponses: 3
    Dernier message: 28/10/2008, 10h14

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