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

Discussion :

Héritage d'arguments entre deux classes

  1. #1
    Membre confirmé
    Femme Profil pro
    Apprentie Développeuse
    Inscrit en
    Février 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Apprentie Développeuse
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 106
    Par défaut Héritage d'arguments entre deux classes
    Bonjour à tous

    j'ai deux classe : MainWindow et mafenetre
    qui ont toutes deux pour arguments un QString et un QWidget
    je voudrais dans crée la classe fille mafenetre qui a pour classe mère MainWindow or j'ai quelques problèmes de compilation

    MAINWINDOW.CPP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    C:/Qt/qtcreator-2.1.0/Impression_OPTICA-build-desktop/../Impression_OPTICA/mafenetre.h:20: erreur : after previous specification in `mafenetre::mafenetre(QString&, QWidget*)'
     
    this.texte = objt;
    }
    MAINWINDOW.h
    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 mafenetre;
    namespace Ui {
        class MainWindow;
    }
     
    //class PosiButton;
     
    class MainWindow : public QWidget
    {
        Q_OBJECT
     
    public:
        MainWindow(QString objt, QWidget *parent = 0);
        //~MainWindow();
    private:
     
        QString texte;
     
     
    };
     
    inline QString MainWindow::get_texte(){
        return texte;
    }
     
    #endif // MAINWINDOW_H
    MAFENETRE.cpp
    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
    #include <mafenetre.h>
    #include <QTextEdit>
     
    #include <QString>
     
    mafenetre::mafenetre(QString &contenu,QWidget *parent=0)
        :MainWindow(contenu,parent),text(contenu)
     
    {
       // ui->setupUi(this);
     
        this->text=contenu;
        texted = new QTextEdit(this);
    }
     
     
    mafenetre::~mafenetre()
    {
        delete ui;
    }
    mafenetre.h
    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
    namespace Ui {
        class mafenetre;
    }
     
     
     
    class mafenetre : public MainWindow
    {
        //Q_OBJECT
     
    public:
         mafenetre(QString &contenu ,QWidget *parent = 0);
         ~mafenetre();
     
     
    private :
        QString text;
        Ui::mafenetre *ui;
        QTextEdit *texted;
     
    };
     
    #endif // MAFENETRE_H
    Or j'ai des erreurs de compilations que je ne comprend vraiment pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    erreur : default argument given for parameter 2 of `mafenetre::mafenetre(QString&, QWidget*)'
     
     erreur : after previous specification in `mafenetre::mafenetre(QString&, QWidget*)'
    Merci par avance de l'aide que vous pourriez m'apporter

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    La spécification d'un argument prenant une valeur par défaut doit se faite uniquement dans la déclaration dans le fichier d'entête. Pas dans la définition.

    Ainsi dans MAFENETRE.cpp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mafenetre::mafenetre(QString &contenu,QWidget *parent=0)

  3. #3
    Membre confirmé
    Femme Profil pro
    Apprentie Développeuse
    Inscrit en
    Février 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Apprentie Développeuse
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 106
    Par défaut
    Bonjour ,

    merci de ta réponse je viens tout juste de trouver en même temps par contre mon programme plante dès que je fait dans mainWindow

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    qstring contenu = "bonjour";
    mafenetre fen(contenu,this);
    fen.show();
    j'ai ce code la dans mafenetre.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     this->text=contenu;
        texted = new QTextEdit(this);
        texted->show();

  4. #4
    Invité
    Invité(e)
    Par défaut
    Pour commencer le fait de voir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Ui::mafenetre *ui;
        QTextEdit *texted;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    texted = new QTextEdit(this);
    me laisse perplexe... L'interface que tu as normalement "designée" accessible via l'attribut ui devrait suffire il me semble. Pourquoi créer un QTextEdit à côté dans le constructeur ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    mafenetre::mafenetre(QString &contenu,QWidget *parent=0)
        :MainWindow(contenu,parent),text(contenu)
    {
    /*    this->text=contenu; ligne totalement inutile, on a déjà initialisé
                              text dans la liste d'initialisation ci-dessus*/
    Ensuite :
    Citation Envoyé par juniordev Voir le message
    je fait dans mainWindow
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mafenetre fen(contenu,this);
    alors que tu as :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    class mafenetre : public MainWindow { }
    mafenetre hérite de MainWindow, MainWindow ne devrait donc aucunement avoir à connaître sa classe dérivée, et encore moins l'utiliser.
    Je te conseille fortement de revoir ta conception à ce niveau

  5. #5
    Membre confirmé
    Femme Profil pro
    Apprentie Développeuse
    Inscrit en
    Février 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Apprentie Développeuse
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 106
    Par défaut
    C'est une partie de mon application , en gros je veux que l'utilisateur choisisse les lignes d'un QTextEDIT et appuie sur un bouton selectionner et pour pas que ça perturbe ma fenetre principale j'ai crée une autre fenêtre.



    merci de ton aide Winjerome

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/01/2012, 13h31
  2. [POO] Héritage entre deux classes
    Par Lenaick dans le forum Langage
    Réponses: 5
    Dernier message: 16/10/2007, 09h53
  3. Association entre deux classes en dotnet
    Par lulu3111 dans le forum C++/CLI
    Réponses: 4
    Dernier message: 18/04/2007, 21h15
  4. Passage d'un objet entre deux classes
    Par ericlemoustic dans le forum Langage
    Réponses: 2
    Dernier message: 13/10/2006, 09h58
  5. Réponses: 5
    Dernier message: 17/08/2005, 12h40

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