Qt C++ - Creation QList<Myclass> - 不是参数 'T 的有效模板类型参数

Qt C++ - Creation QList<Myclass> - is not a valid template type argument for parameter 'T

我刚开始使用 C++ Qt,我编写了以下 .h 文件:.cpp 文件仅包含空的构造函数和析构函数。

#include <QList>

class XML_Files
{

public:
    XML_Files();
    ~XML_Files();

protected:
    QList<Myclass> m_Xmls;

};


class Myclass
{
public:
    Myclass();
    ~Myclass();

protected:

    int a;

};

但我不断收到以下错误:

error C2065: 'Myclass': undeclared identifier
error C2923: 'QList': 'Myclass' is not a valid template type argument for parameter 'T'

我需要做什么才能用我自己的数据类型声明一个 Qlist

在编译器知道之前,您不能使用名称 MyClass。由于您在 XML_Files 之后才声明 MyClass,因此您不能在 XML_Files.

中使用它的名称

此处最简单的解决方案是仅更改声明的顺序并在 XML_Files.

之前声明 MyClass

解决此问题的简单方法是调换两者的顺序 类。但是,如果不需要或不可能,还有第二种解决方案:

您可以在定义之前声明 Myclass。那么编译就成功了。

#include <QList>

class Myclass;

class XML_Files
{

public:
    XML_Files();
    ~XML_Files();

protected:
    QList<Myclass> m_Xmls;

};


class Myclass
{
// ...
};