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 :

Classe fille : problème constructeur de la classe mère


Sujet :

C++

  1. #1
    Membre très actif
    Inscrit en
    Juin 2007
    Messages
    259
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 259
    Par défaut Classe fille : problème constructeur de la classe mère
    Bonjour,

    Je cherche à faire une classe fille de la classe QLineEdit.
    Mon myLineEdit.h est simpliste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #ifndef MYLINEEDIT_H
    #define MYLINEEDIT_H
     
    #include <QLineEdit>
     
    class myLineEdit : public QLineEdit {
        public:
        myLineEdit();
    } ;
    Le myLineEdit.cpp est simpliste aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #include <myLineEdit.h>
     
    myLineEdit::myLineEdit() : QLineEdit {}
     
    #endif // MYLINEEDIT_H
    Et dans mon main.cpp je teste les 2 instanciations :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include <myLineEdit.h>
     
    QString const stringA = "I'm the A string";
    QString const stringB = "I'm the B string";
     
    QLineEdit  qLineA = new QLineEdit(stringA) ;
    myLineEdit qLineB = new myLineEdit(stringB) ;
    Pour l'instanciation de qLineB j'ai une erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    error: no matching function for call to 'myLineEdit::myLineEdit(const QString&)
    Puisque l'une hérite de l'autre, comment cela se fait t-il que le constructeur renvoi une erreur dans le cas de la classe fille ?
    Merci.

  2. #2
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par défaut
    Sont définis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    myLineEdit::myLineEdit();
    QLineEdit::QLineEdit(const QString&);
    N'est pas défini :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myLineEdit::myLineEdit(const QString&);
    La classe fille hérite bien des constructeurs de ses parents dans le sens qu'ils lui sont accessibles, mais ça ne crée pas automatiquement de constructeur de la classe fille à partir des constructeurs des classes parents, pour la simple raison que dans le cas de l'héritage multiple il est parfois nécessaire de faire un choix arbitraire.

  3. #3
    Membre très actif
    Inscrit en
    Juin 2007
    Messages
    259
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 259
    Par défaut
    Citation Envoyé par prgasp77 Voir le message
    La classe fille hérite bien des constructeurs de ses parents dans le sens qu'ils lui sont accessibles, mais ça ne crée pas automatiquement de constructeur de la classe fille à partir des constructeurs des classes parents, pour la simple raison que dans le cas de l'héritage multiple il est parfois nécessaire de faire un choix arbitraire.
    Oups, merci je n'avais pas compris ce point, je pensais que l'héritage rendait automatique les constructeurs présents dans la classe fille.
    Et oui, je comprends dans le cas de l'héritage multiple. Merci.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/09/2013, 10h02
  2. Réponses: 7
    Dernier message: 12/05/2010, 14h00
  3. Réponses: 7
    Dernier message: 27/01/2009, 08h25
  4. Réponses: 14
    Dernier message: 17/11/2006, 19h17
  5. Réponses: 10
    Dernier message: 20/09/2006, 17h04

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