Qt QMainWindow:在包含的文件中:字段类型不完整“QString”

Qt QMainWindow: In included file: field has incomplete type 'QString'

提问人:Jona 提问时间:7/14/2023 更新时间:7/14/2023 访问量:27

问:

我在 Qt 版本 6.4.1 中构建了一个新项目,我唯一做的就是添加 2 个新类“ressource”和“process”。进程使用资源。

当我生成它们时,毫无疑问,我的主窗口中有一个错误?! 错误:在包含的文件中:文件类型不完整“QString” 我没有改变任何东西。#include <QMainWindow>

我使用 MinGW 64Bit

谢谢你,这是大学-.-的一个项目

#ifndef RESSOURCE_H
#define RESSOURCE_H

#include <QDebug>

using namespace std;

class Ressource{
private:
    QString name;
    int ressourceId;
    int count;
public:
    int getRessourceId() const;

    void setRessourceId(int ressourceId);

    const QString &getName() const {
        return name;
    }

    void setName(const QString &name) {
        Ressource::name = name;
    }

    int getCount() const {
        return count;
    }

    void setCount(int count) {
        Ressource::count = count;
    }
    Ressource(QString name, int ressourceId, int count);
    void print();
};

#endif // RESSOURCE_H
#ifndef PROCESS_H
#define PROCESS_H

#include <vector>
#include <ressource.h>

using namespace std;

class Process {
private:
    QString name;
    int processId;
public:

    int getProcessId() const;
    void setProcessId(int processId);

private:
    vector<Ressource> neededRessources;
    vector<Ressource> assignedRessources;
public:
    const QString &getName() const {
        return name;
    }

    void setName(const QString &name) {
        Process::name = name;
    }

    const vector<Ressource> &getNeededRessources() const {
        return neededRessources;
    }

    void setNeededRessources(const vector<Ressource> &neededRessources) {
        Process::neededRessources = neededRessources;
    }

    const vector<Ressource> &getAssignedRessources() const {
        return assignedRessources;
    }

    void setAssignedRessources(const vector<Ressource> &assignedRessources) {
        Process::assignedRessources = assignedRessources;
    }

public:
    Process(QString name,int processId, int min, int max);
    void requestRessource(Ressource ressource, int count);
    void releaseRessource(Ressource ressource, int count);
    void print();
};

#endif // PROCESS_H

它将是一个模拟死锁的项目。为此,我需要进程使用的资源。我唯一要做的就是生成它们的基本结构。

C++ Qt 错误处理 QMake

评论

2赞 perivesta 7/14/2023
如果你在课堂上使用,你需要QString#include <QString>
0赞 Friedrich 7/14/2023
顺便说一句,为什么使用命名空间 std; 被认为是不好的做法?
0赞 Jona 7/15/2023
我更改了包含,但我仍然在mainwindow.h中遇到错误错误:mainwindow.h:4:10:在包含的文件中:基类的类型不完整 ressource.h:7:19:此处发生错误 qtclasshelpermacros.h:81:7:转发声明“QObject”#include <QMainWindow>

答: 暂无答案