ожидаемое имя класса перед ‘{’

ну, я новичок в Qt, но не очень нов в c ++, ошибка вступает в силу для рекурсивных включений, но посмотрите на мой код, я не вижу никаких рекурсивных включений … я думаю, что это что-то еще, кто-нибудь поможет мне с следующей ошибкой:

ожидаемое имя класса до ‘{‘ token {

Вот мой код:

#ifndef COLE_H
#define COLE_H

#include <QDialog>
#include "mainwindow.h"
namespace Ui {
class COLE;
}

class COLE : public QDialog , public Ui::MainWindow
{
Q_OBJECT

public:
explicit COLE(QWidget *parent = 0);
~COLE();

private slots:
void on_pushButton_clicked();

public:
double var1;

private:
Ui::COLE *ui;

};#endif // COLE_H

Я знаю, что проблема возникла из «public Ui :: MainWindow», но я уверен, что так и должно быть. Я проверяю название моего класса и его MainWindow.

Пожалуйста, помогите.

2

Решение

Кажется, у вас есть две проблемы.

1) Вы должны быть в том числе ui_mainwindow.h скорее, чем mainwindow.h как обычно это то, что генерируется по умолчанию компилятором пользовательского интерфейса (то есть uic), если вы не измените его явно. Я предполагаю, что это не тот случай, поскольку это обычно не является необходимым.

Что касается второго вопроса, вы можете заставить его работать двумя разными способами:

2а) Единый подход наследованияКороче говоря, таким образом, вы используете композицию, а не наследование от класса пользовательского интерфейса. Поэтому, если вы решите сделать это таким образом, вам понадобится только указатель члена, а не наследование класса пользовательского интерфейса.

2b) Подход множественного наследованияКороче говоря, таким образом, вы используете множественное наследование, как говорит его имя, а не состав. Вы не используете член-указатель таким образом, но конфиденциально наследуете от класса пользовательского интерфейса.

В настоящее время у вас, похоже, неверный подход к двум вышеупомянутым случаям. Попробуйте придерживаться одного из них.

6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]