Bonjour,

Je développe un petit projet pour mes études mais je tombe sur un problème à chaque fois que je ferme mon programme...ce n'est pas trop genant me direz vous mais de 1 ca fait pas propre et de 2 ca doit vouloir dire que je n'ai pas compris une subtilité du C++ et ca me derange beaucoup.

Mon programme est développez sous qt mais à prioris ce n'est pas ça qui doit faire planter...enfin j'espère que qt n'est pas incompatible avec ce que je veux faire...

Voila mon code: Othellier.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
 
 
#ifndef H_OTHELLIER
#define H_OTHELLIER
 
#include <qlabel.h>
#include <QWidget.h>
#include <QGridLayout.h>
 
 
class Case : public QWidget {
    public:
        Case( QWidget *parent = NULL );
};
 
class Othellier : public QLabel {
    public:
        Othellier( int sizeOthellier,  QWidget *parent = NULL );
        ~Othellier();
    private:
        Case ** tiles;
        int size;
};
 
#endif
Othellier.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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include "othellier.h"
 
Othellier::Othellier( int sizeOthellier, QWidget *parent ){
    int i,j;
    QGridLayout *layout = new QGridLayout;
 
    setPalette(QPalette(QColor(0, 0, 0)));
    setAutoFillBackground(true);
    setFixedSize(440,440);
 
    tiles = new Case* [sizeOthellier];
 
    for( i=0;i<sizeOthellier;i++){
        tiles[i] = new Case [sizeOthellier];
        for( j=0;j<sizeOthellier;j++){
            Case *temp = &tiles[i][j];
            layout->addWidget(temp,i,j);
        }
    }
 
    this->setLayout(layout);
}
 
Othellier::~Othellier(){
    int i;
    for( i=0;i<size;i++){
        delete [] tiles[i];
    }
    delete [] tiles;
}
 
Case::Case( QWidget *parent ) : QWidget(parent){
    setPalette(QPalette(QColor(10, 173, 29)));
    setAutoFillBackground(true);
    setFixedSize(50,50);
}
Main.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
#include <qstring.h>
#include <qapplication.h>
#include <qpushbutton.h>
#include <qmenubar.h>
#include <qmenu.h>
#include "othellier.h"
 
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
 
    Othellier myWindow(8);
    myWindow.setGeometry(100, 100,700, 500);
 
    myWindow.show();
 
    return app.exec();
}
J'imagine que ca vient du faite de la matrice allouer dynamiquement mais malgrès le delete ca marche toujours pas...