Initialisation d'un constructeur dans une autre classe Qt
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
Code:
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.h
Code:
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 |
mainwindow.cpp
Code:
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.h
Code:
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 |
tube.cpp
Code:
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;
} |