编译器不会让我实例化文件处理器* p;在mainwindow.ccp中,但我可以在任何其他课程中使用。

主窗口

   #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:未声明的标识符和p:未声明的标识符

最佳答案

@ user4217633:将fileprocessor.h包括在mainwindow.cpp中,而不是在mainwindow.h中。在那里,您需要一个前向声明:

class fileprocessor; // Just this


实际上,您已经有了这样的前向声明:

namespace Ui {
  class MainWindow;
}

10-08 07:53
查看更多