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 :

Constructeur et héritage.


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut Constructeur et héritage.
    Salut!

    Lorsqu'une classe hérite d'une autre comment faire pour qu'elle hérite aussi des constructeurs pour éviter de les redéfinir?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class A{
    public:A(int,int);
    };
     
    A::A(int a=0,int b=0){}
     
    class B:public A{
     
    };
    Les appels:
    étant avec ce code incorrects:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'B::B(const B &)' : cannot convert parameter 1 from 'int' to 'const B &'
    Le compilo prend ça pour une tentative d'appel au constructeur par recopie.

    Merci de votre aide.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 258
    Par défaut
    Citation Envoyé par seriousme
    Lorsqu'une classe hérite d'une autre comment faire pour qu'elle hérite aussi des constructeurs pour éviter de les redéfinir?
    On ne peut pas : les constructeurs et destructeurs ne sont pas des "vraies" fonctions et ne sont pas héritées.

  3. #3
    Membre chevronné
    Avatar de NewbiZ
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2002
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2002
    Messages : 184
    Par défaut
    Il existe une astuce pour hériter les constructeurs et même les spécialiser, tu utilises la liste des initialiseurs.
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    class A{
    public:
      A( int a, int b );
    };
     
    A::A( int a,int b )
    {
    }
     
    class B : public A
    {
    public:
      B( int a, int b );
      B( int a, int b, int c );
    };
     
    B::B( int a, int b )
      : A( a, b )
    {
    }
     
    B::B( int a, int b, int c )
      : A( a, b )
    {
    }

  4. #4
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    Il existe une astuce pour hériter les constructeurs et même les spécialiser, tu utilises la liste des initialiseurs.
    Oui mais cela oblige à les définir.
    On ne peut pas : les constructeurs et destructeurs ne sont pas des "vraies" fonctions et ne sont pas héritées.
    Dans ce cas il faut forcément les définir.

    Merci de vos réponses.

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

Discussions similaires

  1. problème de constructeurs par héritage
    Par oieretxe dans le forum C++
    Réponses: 10
    Dernier message: 02/11/2013, 19h31
  2. constructeurs multiples - héritage
    Par Rocknacro dans le forum Langage
    Réponses: 14
    Dernier message: 07/06/2011, 07h34
  3. Classe, Constructeur et héritage
    Par Herwin78800 dans le forum F#
    Réponses: 2
    Dernier message: 22/08/2009, 22h08
  4. [POO] Constructeur et héritage
    Par LDDL dans le forum Langage
    Réponses: 3
    Dernier message: 23/05/2006, 21h44
  5. Réponses: 7
    Dernier message: 30/09/2004, 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