基本的に、私は摩擦からベース(またはその逆)まですべてを継承しようとしていますが、それは私が入れたクラスを識別していません。
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
摩擦.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;
}
摩擦.cpp
#include "friction.h"
#include "base.h"
#include "ui_base.h"
Friction::Friction(){
}
そして最後にmain.cpp
int main(int argc, char *argv[]){
QApplication a(argc, argv);
Base w;
w.show();
Friction f;
return a.exec();
}
「'{'トークンの前にクラス名が必要です」というエラーが表示されます。プロジェクトを可能な限り削減しましたが、エラーが発生しますが、理由はわかりません。
私はc++にかなり慣れていませんが、継承は基本的なプログラムではそれほど問題ではないことがわかりましたが、Qtに移行すると、それを機能させることができなかったようです。なぜクラスが特定されないのか全くわからないので、インクルードの変更などいろいろ試してみました。