Qt编译报错,请各位大佬帮忙解决一下,谢谢

Qt小白,写代码的时候在定义全局变量的时候发生了问题,请大佬帮忙解决一下,谢谢

相关报错信息:

报错

mainwindow.h

mainwindow.h

mainwindow.cpp

图片说明

mainwindow.h

mainwindow.cpp

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QDialog>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
#include <QString>
#include <allinall.h>
#include <winborrow.h>
#define M 11
#define MAXN 1000000
namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    struct position{
        int area;
        int row;
    };
    static struct BooksA{
        QString ISBN="-1";
        QString name="-1";
        position pos;
    }bookA[MAXN],init;
private slots:
    void on_BorrowBTN_clicked();

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H


------------------------------------------------------------


#include <mainwindow.h>
#include <ui_mainwindow.h>
#include <bits/stdc++.h>
#define M 11
#define MAXN 1000000
MainWindow::BooksA MainWindow::bookA[MAXN];
bookA[1].ISBN="12345";
bookA[2].ISBN="54321";
bookA[1].name="宝可梦图鉴";
bookA[2].name="武林外传";
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}
//int main(int argc, char *argv[]){
//    ifstream input;
//    input.open("D:\\SESbooktest.txt");
//    input>>n
//    for(int i=1;i<=n;i++){
//        QString loca1,loca2;

//        input>>WinBorrow::bookA[i].ISBN>>WinBorrow::bookA[i].name>>WinBorrow::bookA[i].pos.area
//    }
//}

void MainWindow::on_BorrowBTN_clicked()
{
    WinBorrow *winborrow;
    winborrow = new WinBorrow;
    winborrow->show();
}
c++

3个回答

bookA[1].ISBN="12345";
bookA[2].ISBN="54321";
bookA[1].name="宝可梦图鉴";
bookA[2].name="武林外传";
这几行放在 MainWindow::MainWindow(QWidget *parent) : 里面

SuperFHC666
SuperFHC666 感谢感谢,已经解决了
5 个月之前 回复
SuperFHC666
SuperFHC666 这样我试了,好像不行吧
5 个月之前 回复
BooksA MainWindow::bookA[MAXN] = {
    "12345",
    "54321",
    "宝可梦图鉴",
    "武林外传"
};

does not name a type: 不认识的类型,所以

typedef struct BooksA{
        QString ISBN="-1";
        QString name="-1";
        position pos;
    }bookA[MAXN],init;
SuperFHC666
SuperFHC666 你的方法也可以,但是不好意思我是先用楼上的方法解决了
5 个月之前 回复
SuperFHC666
SuperFHC666 感谢感谢,已经解决了
5 个月之前 回复
d2262272d
潇潇-易水 回复SuperFHC666: 对的,就是这个,应该是能行的吧
5 个月之前 回复
SuperFHC666
SuperFHC666 是不是应该typedef?
5 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问