[英]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.