无法在主窗口类中实例化指针

时间:2014-11-05 09:47:18

标签: c++ qt

编译器不会让我实现文件处理器* 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

我获得文件处理器:未声明的标识符 p:未声明的标识符

1 个答案:

答案 0 :(得分:0)

@ user4217633:在fileprocessor.h中包含mainwindow.cpp,在mainwindow.h中包含 。你需要一个前瞻声明:

class fileprocessor; // Just this

事实上,你已经有了这样一个前瞻声明:

namespace Ui {
  class MainWindow;
}