En fait, je suis en train d'hériter tout de friction dans la base (ou même l'inverse) cependant, il n'est pas l'identification des classes je.Problème avec l'héritage Qt
base.h
#ifndef BASE_H
#define BASE_H
#include <QMainWindow>
namespace Ui {
class Base;
}
class Base : public QMainWindow{
Q_OBJECT
public:
explicit Base(QWidget *parent = 0);
~Base();
private:
Ui::Base *ui;
};
#endif // BASE_H
friction.h:
#ifndef FRICTION_H
#define FRICTION_H
class Friction : public Base{ // THIS IS WHERE THE ERROR IS
public:
Friction();
};
#endif // FRICTION_H
base.cpp
#include "friction.h"
#include "base.h"
#include "ui_base.h"
Base::Base(QWidget *parent) :QMainWindow(parent),ui(new Ui::Base){
ui->setupUi(this);
}
Base::~Base(){
delete ui;
}
friction.cpp
#include "friction.h"
#include "base.h"
#include "ui_base.h"
Friction::Friction(){
}
et enfin MAIN.CPP
int main(int argc, char *argv[]){
QApplication a(argc, argv);
Base w;
w.show();
Friction f;
return a.exec();
}
Je reçois l'erreur « attendu nom de la classe avant « { » jeton », je l'ai coupé le projet vers le bas autant que je peut et l'erreur arrive encore et je ne sais vraiment pas pourquoi.
Je suis assez nouveau pour C++ mais je trouve que l'héritage ne pose pas beaucoup de problème sur un programme de base, mais en passant à Qt, je n'arrivais pas à le faire fonctionner. J'ai essayé beaucoup de choses concernant le changement des inclusions etc etc car je suis complètement inconscient de savoir pourquoi il n'identifie pas la classe.
Et, sans doute, vous avez oublié '' Q_OBJECT' dans Friction' – troyane
Oh merci beaucoup. Désolé pour mon ignorance, j'ai seulement commencé C++ il y a 2 jours. – iyop45
@ user1 Vous devriez apprendre le C++ bien avant d'apprendre Qt. Qt a des paradigmes d'architecture forts basés principalement sur ce que le «moc» peut et ne peut pas faire, ce qui signifie que vous pouvez apprendre une vision très faussée et étroite de la langue. – cmannett85