[英]How to use a QMap in an interface
我试图在我的班级中使用 QMap,但出现错误:
/* path */.h:18: error: template argument required for ‘class QMap’
class QMap;
^~~~
实施
class QMap;
class MappingInterface
{
public:
virtual ~MappingInterface() {}
virtual QMap<QString, QString> itemsMap() const = 0;
};
#define MappingInterface_iid "com.myapp.MappingInterface"
Q_DECLARE_INTERFACE(MappingInterface, MappingInterface_iid)
如何在类中使用 QMap?
先感谢您。
QMap 是一个模板,您不能只输入class QMap
而不是标题! 短类原型只能用于指针,对于对象和引用,您必须包含完整类声明的标题!
您必须包含 QMap 的标题:
#include <QMap>
#include <QString>
class MappingInterface
{
public:
virtual ~MappingInterface() {}
virtual QMap<QString, QString> itemsMap() const = 0;
};
#define MappingInterface_iid "com.myapp.MappingInterface"
Q_DECLARE_INTERFACE(MappingInterface, MappingInterface_iid)
Wohlstand 的回答不准确,您可以转发声明模板类。 使用 QMap 你会这样做:
template <class Key, class T> class QMap;
如果你愿意,你可以缩进一点
template <class Key, class T>
class QMap;
检查这些答案以获取有关此的更多信息
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.