Bonjour cela fait peu de temps que j'ai commencé Qt, j'aimerais dans ma classe MainWindow appeler un constructeur venant de la classe tube, or le problème que je n'arrive pas à l'initialiser...
En vous remerciant d'avance,
cdt
voici mon code :
main.cpp
mainwindow.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #include "mainwindow.h" #include "tube.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); }
mainwindow.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 #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <tube.h> QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class MainWindow : public QMainWindow,public tube { Q_OBJECT public: MainWindow(QWidget *parent=nullptr); ~MainWindow(); MainWindow(double ,double); private slots: void on_pushButton_clicked(); void on_pushButton_2_clicked(); private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H
tube.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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 #include "mainwindow.h" #include "tube.h" #include "ui_mainwindow.h" #include "iostream" using namespace std; MainWindow::MainWindow(QWidget *parent): QMainWindow(parent),ui(new Ui::MainWindow) { ui->setupUi(this); } MainWindow::~MainWindow() { delete ui; } MainWindow::MainWindow(double rayon,double hauteur) : tube(rayon,hauteur){} void MainWindow::on_pushButton_clicked() { ui->stackedWidget->setCurrentIndex(1); tube a(2,2); cout << a.calcul_volume(); } void MainWindow::on_pushButton_2_clicked() { ui->stackedWidget->setCurrentIndex(0); }
tube.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 #ifndef TUBE_H #define TUBE_H #include <QMainWindow> class tube { public: tube(double,double); double calcul_volume(); double *rayon,*hauteur; private: const double pi = 3.1415; }; #endif // TUBE_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 #include "tube.h" tube::tube(double rayon,double hauteur) : rayon(0),hauteur(0){ this->rayon = new double (rayon); this->hauteur = new double (hauteur); } double tube::calcul_volume(){ return pi**rayon**rayon**hauteur; }
Partager