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

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : avril 2020
    Messages : 4
    Points : 4
    Points
    4
    Par défaut No matching constructor for initialization of "MainWindow"
    Bonjour tout le monde,
    je suis entrain de découvrir Qt, mais je fais face à un problème. En effet je souhaite avoir accès au constructeur de la classe Convertion dans la classe MainWindow. Jusqu'à la pas de problème me diriez-vous. Or le problème est que dans le main.cpp on m'affiche l'erreur suivante : No matching constructor for initialization of "MainWindow". Ou ai-je fait mon erreur ?
    Cdt

    MainWindow.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
    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
     
    #include <QMainWindow>
    #include "ui_mainwindow.h"
    #include "aide.h"
    #include "convertion.h"
     
    QT_BEGIN_NAMESPACE
    namespace Ui { class MainWindow; }
    QT_END_NAMESPACE
     
    class MainWindow : public QMainWindow,public Convertion
    {
        Q_OBJECT
     
    public:
        MainWindow(QString,double,QWidget *parent = nullptr);
        ~MainWindow();
     
     
        double Temperature_Col(double&,double&);
        double Vitesse_Fluide(double&);
        double Pression_Col(double&);
        double Debit_Massique(double&);
        double Pression_Exterieur(double,double,float);
        double Vitesse_Ejection_Gaz();
        double Poussee_Z();
        double Pression_Sortie();
        QString Tuyere_Adaptee();
    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
    #include "ui_mainwindow.h"
    #include "aide.h"
    #include "bloc_calcul.h"
     
    #define INTENSITE_PESENTEUR 9.807
    #define CSTE_UNI_GAZ  8.314462618
    #define Masse_Molaire_Air 0.029
     
    using namespace std;
     
     
     
    MainWindow::MainWindow(QString Valeur_a,double Valeur_b,QWidget *parent) :Convertion(Valeur_a,Valeur_b),QMainWindow(parent),ui(new Ui::MainWindow){
        ui->setupUi(this);
        this->setWindowTitle("Nozzle perf");
        QPixmap pix(":/images/images/background.png");
        ui->label_Background_Mainwindow->setPixmap(pix);}
    Convertion.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
    #ifndef CONVERTION_H
    #define CONVERTION_H
     
    #include <QMainWindow>
    #include "mainwindow.h"
     
     
     
     
    class Convertion
    {
    public:
        Convertion(QString, double);
     
     
     
        double Convertion_Temperature();
        double Convertion_Poussee();
        double Convertion_Pression();
     
     
    private :
        float retour_Valeur;
        double b;
        QString a;
    };

    Convertion.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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    #include "convertion.h"
     
    Convertion::Convertion(QString Valeur_a,double Valeur_b) : a(Valeur_a),b(Valeur_b)
    {
     
     
    }
     
     
    double Convertion::Convertion_Temperature(){
     
     
        if(a == "°C"){retour_Valeur = b+273.15 ;}
     
        else if(a == "F"){retour_Valeur = (((b-32)/1.8)+273.15);}
     
        else{retour_Valeur = b;}
     
        return retour_Valeur;
    }
     
     
     
    double Convertion::Convertion_Poussee(){
     
        if(a == "kN"){ retour_Valeur = b/1000;}
        else{ retour_Valeur = b;}
     
     
        return retour_Valeur;
     
    }
     
     
    double Convertion::Convertion_Pression(){
     
     
        if(a == "bar"){ return retour_Valeur = b * 100000;}
     
        else if (a == "atm"){return retour_Valeur = b*101325 ;
        }
     
        else if(a == "PSI"){return retour_Valeur = b*6894,75729317831;}
     
        else{ return retour_Valeur = b;}
     
     
     
     
    }

  2. #2
    Membre expérimenté Avatar de Astraya
    Homme Profil pro
    Consommateur de café
    Inscrit en
    mai 2007
    Messages
    911
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Consommateur de café
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : mai 2007
    Messages : 911
    Points : 1 739
    Points
    1 739
    Par défaut
    Bonjour,
    MainWindow.h inclus converssion.h qui ré inclus MainWindow.h.qui ré inclus conversion.h... Alors oui il y a les guards mais il faut voir le #include comme un remplacement part le code complet du header (.h). Résultat ton compilateur n'atteint jamais la defintion de ta classe MainWindow.
    Réorganise ton code pour qu'il y ai une coupure dans la boucle que j'ai décris. Peut-être avec une forward declaration..
    Homer J. Simpson


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

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/04/2015, 15h30
  2. Réponses: 2
    Dernier message: 05/08/2011, 18h13
  3. No matching function for call to 'Joueur::Joueur'
    Par Go'Gaule dans le forum Débuter
    Réponses: 4
    Dernier message: 02/07/2011, 07h50
  4. Réponses: 8
    Dernier message: 09/07/2010, 16h02
  5. no matching function for call
    Par pimousse280187 dans le forum Linux
    Réponses: 1
    Dernier message: 06/06/2009, 21h08

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