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