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
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 #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
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
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); }
J'imagine que ca vient du faite de la matrice allouer dynamiquement mais malgrès le delete ca marche toujours pas...
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(); }
Partager