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 :

appel Constructeur d'une classe

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 22
    Par défaut appel Constructeur d'une classe
    Bonjour,

    J'ai un petit problème avec l'appel d'un constructeur d'une classe dans un autre constructeur.

    Dans mon cas, la classe window contient un objet de la classe Board. Avant je n'appelais pas de constructeur, et tout était géré automatiquement.

    Mais maintenant je souhaite faire passer un bool au constructeur de Board.

    J'ai essayer en créant simplement l'objet dans le constructeur ( comme avec n'importe quel autre objet comme les QPushbutton ), ou en le déclarant avant le code du constructeur, mais aucune solution ne marche.

    Voici le code des .h et des Constructeurs :

    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
    class Window : public QWidget
    {
    	Q_OBJECT
    public:
            Window(QWidget *parent = 0,bool mod = true);
    signals:
    	void launchGame();
            void nextTurn();
            void loopCount(int);
    protected:
    	void paintEvent ( QPaintEvent * event );
            void mousePressEvent ( QMouseEvent * event );
    private slots:
    	void game();
            void end();
            void pause();
    private:
    	Board conway;
            ThGui command;
            bool first;
            bool onGoing;
            int loopCt;
            bool modification;
    };
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    class Board : public QThread {
     
             Q_OBJECT
     
    	public:
     
            enum{LENGTH = 150, WITDH = 150 };
     
            Board(bool buildMode = true);
    	Board(const Board&);
     
     
            void run();
    	int nextValue();
            void resetSearch();
            bool isEmpty();
            void insertValue(int);
     
     
            ~Board() {}
     
            signals:
            void paint();
     
            private slots:
            void loopEvent ();
            void load(QString);
            void save(QString);
     
    	private:
     
    	int neighboorCell(int);
    	int searchValue;
     
    	QList<int> gameBoard;
    };
    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
    Window::Window(QWidget *parent,bool mod)
            :QWidget(parent) {
     
            //Board conway = new Board(mod);
            command.show();
            first = true;
            modification = true;
           // onGoing = false;
            setMinimumSize (Board::LENGTH*5 , Board::WITDH*5 );
            setMaximumSize (Board::LENGTH*5 , Board::WITDH*5 );
            connect(&conway,SIGNAL(paint()),this,SLOT(game()));
            connect(&command,SIGNAL(beginEnd()),this,SLOT(end()));
            connect(&command,SIGNAL(begin()),this,SLOT(game()));
            connect(&command,SIGNAL(pause()),this,SLOT(pause()));
            connect(this,SIGNAL(loopCount(int)),&command,SLOT(loopCount(int)));
            connect(this,SIGNAL(nextTurn()),&conway,SLOT(loopEvent()));
            connect(&command,SIGNAL(loadFile(QString)),&conway,SLOT(load(QString)));
            connect(&command,SIGNAL(saveFile(QString)),&conway,SLOT(save(QString)));
     
            //conway.start();
     
            loopCt = 0;
    }
    mon but est donc de passer le bool mod récupérer par le constructeur de window au constructeur de Board.


    Merci d'avance

  2. #2
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Par défaut
    Cette ligne était en commentaire mais elle est fausse. C'est peut être de là que vient ton problème.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Board conway = new Board(mod);
    il faut écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    conway = new Board(mod);
    et mettre en variable membre dans ton .h ceci:
    Vous voulez participer aux Tutoriels, FAQ ou Traductions et faire partie de l'équipe Qt de Developpez.
    N'hésitez pas à me contacter par MP.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 22
    Par défaut
    Mais comme je fais pour jamais voir des erreurs aussi évidente

    Merci beaucoup Superjaja

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 18/06/2010, 17h36
  2. Réponses: 12
    Dernier message: 13/10/2007, 11h37
  3. Réponses: 5
    Dernier message: 20/11/2005, 11h15
  4. Réponses: 3
    Dernier message: 06/11/2005, 18h02

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