gpt4 book ai didi

c++ - 包含模板的 (sdk) 类的前向声明

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:17:06 27 4
gpt4 key购买 nike

我一直在头文件中进行前向声明,并在 cpp 中包含实际的类文件。但是当类被模板化时我遇到了问题:

class MyClass {
public:
MyClass();
void aFunction();
private:
QList<int> m_member;
};

为了构建它,我需要给这个类关于 QList 的信息.我试过:

class QList;

error: template argument required for 'class QList'

我试过了(因为在这个特定的类中我只需要 QList 个整数):

class QList<int>;

error: specialization of 'QList<int>' after instantiation

我查找了这些错误,但只发现与创建类模板有困难的人有关的问题,没有发现任何关于前向声明的问题。

如果没有别的办法,我可以#include <QList>在头文件中并放弃前向声明 - 但我想了解这个问题。

关于 template classes forward declarations 的 HitTest 门问题中也建议使用此选项。 :

Just #include <list> and don't worry about it.

我不明白other answers ...

最佳答案

你可以转发声明一个模板类,像这样:

template<typename>
class QList;

但是如果你声明一个不是引用或指针的这种类型的成员(即 m_member),它就不会工作。

关于c++ - 包含模板的 (sdk) 类的前向声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32054162/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com