2014-11-05 63 views
1

編譯器不會讓我instanciate fileprocessor * p;在mainwindow.ccp中,但我可以在任何其他類中使用。無法在主窗口類中實例化指針

mainwindow.cpp

#include "mainwindow.h" 
    #include "ui_mainwindow.h" 

    MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow) 
    { 
     fileprocessor *p; 
     ui->setupUi(this); 
     QObject::connect(ui->Open, SIGNAL(clicked()), 
         this,SLOT(on_action_Open_triggered())); 
    } 

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

-mainwindow.h

#ifndef MAINWINDOW_H 
#define MAINWINDOW_H 
#include <QMainWindow> 
#include <QFile> 
#include <QFileDialog> 
#include <QTextStream> 
#include <QStandardItemModel> 
namespace Ui { 
class MainWindow; 
} 
class MainWindow : public QMainWindow{ 
Q_OBJECT 
public: 
explicit MainWindow(QWidget *parent = 0); 
~MainWindow(); 


private: 
    Ui::MainWindow *ui; 
}; 
#endif // MAINWINDOW_H 

我給fileprocessor:未聲明的標識符號碼:未聲明的標識符

+4

'我給fileprocessor:未申報identifier' - 是的,因爲沒有類型'fileprocessor '在你的代碼中聲明 – 2014-11-05 09:50:53

+0

你正在包含哪個頭文件是聲明的'fileprocessor'類型? – molbdnilo 2014-11-05 09:52:27

+0

fileprocessor是一個類,我不能在這個類中創建一個類的新實例。 – user4217633 2014-11-05 10:06:24

回答

0

@ user4217633:包括fileprocessor.hmainwindow.cpp,不是mainwindow.h。在那裏,你需要預先聲明:

class fileprocessor; // Just this 

你已經有這樣一個向前聲明,其實:

namespace Ui { 
    class MainWindow; 
} 
相關問題