2013-11-12 7 views
2

Здравствуйте, я получаю эту ошибку : ожидается классовое имя до «{» лексема { ^ линия 15 что означает эта ошибка именно? Im пытается наследовать класс контроллера, который имеет функцию, которую мне нужно вызвать в cpp form1.: ожидаемое имя класса перед «{» знак {^

#ifndef FORM1_H 
#define FORM1_H 


#include <QDialog> 
#include "controller.h" 



namespace Ui { 
class form1 ; 
} 

class form1 : public QDialog, public controller 
{ 
    Q_OBJECT 

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

private slots: 
    void on_pushButton_clicked(); 

private: 
    Ui::form1 *ui; 
}; 

#endif // FORM1_H 

контроллер класса

#include "controller.h" 
#include "ui_controller.h" 

controller::controller(QWidget *parent) : 
    QWidget(parent), 
    ui(new Ui::controller) { 
    ui->setupUi(this); 
    show(1); } 

void controller::show(int x) { 
    if(x==1) 
    { 
     myform1 = new form1(this); 
     myform1->show(); 
    } 
    if(x==2) 
    { 
     myform2 = new form2(this); 
     myform2->show(); 
    } 
    if(x==3) 
    { 
     myform3 = new form3(this); 
     myform3->show(); 
    } } 

controller::~controller() { 
    delete ui; } 

controller.h:

#ifndef CONTROLLER_H 
#define CONTROLLER_H 

#include <QWidget> 
#include <form1.h> 
#include <form2.h> 
#include <form3.h> 

namespace Ui { 
class controller; 
} 

class controller : public QWidget 
{ 
    Q_OBJECT 

public: 

    form1 * myform1; 
    form2 * myform2; 
    form3 * myform3; 

    void show(int x); 
    explicit controller(QWidget *parent = 0); 
    ~controller(); 

private: 
    Ui::controller *ui; 
}; 

#endif // CONTROLLER_H 
+0

является 'controller' в глобальном пространстве имен? – Zeta

+0

См. Мое редактирование, проблема была в самом деле круговой. –

+0

Отлично, это сработало спасибо! – Josamoda

ответ

5

Я думаю, у вас есть круговой включать вопрос, что означает controller.h включает в себя, прямо или косвенно, form1.h.

EDIT: изменение включаемого я говорил о том, чтобы вперед декларации - вам не нужно полное определение form1:

#ifndef CONTROLLER_H 
#define CONTROLLER_H 

#include <QWidget> 
class form1; 
class form2; 
class form3; 

namespace Ui { 
class controller; 
} 

class controller : public QWidget 
{ 
//................. 
//................. 
Смежные вопросы