如何在接口中使用QMAP
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;
检查这些答案以获取有关此
的更多信息如何转发声明C 模板类?
我什么时候可以使用前向声明?
相关文章:
- C++核心准则 C35 对于接口类"A base class destructor should be either public and virtual, or protected and nonv
- Visual C++GC接口如何启用它以及要包含哪个库
- Windows.h与GLFW.h的接口
- 当字段可以为null时,如何使用C++接口在Avro中写入数据
- 提供与TMP和SFINAE的通用接口
- 为重写std::exception的库生成swig接口时出错
- 内联如何影响模块接口中的成员函数
- COM 接口 c# 封送数组数组
- 如何在 SCIP C++ 接口中获取 MILP 约束矩阵中的系数值
- 重载 -> shared_ptr 个实例中的箭头运算符<interface>,接口中没有纯虚拟析构函数
- 如何绑定 C++ gRPC 客户端的网络接口
- 模板化接口 - 创建一个泛型模板类以返回任何容器
- 如何从实现接口的模板化类实例访问结构
- 带有进度表的 curl 多接口程序
- 设计帮助 - 为不同类型的消息处理通用接口的设计模式
- 我可以在具有一个标头和一个接口的 cpp 文件中有多个嵌入吗?
- 类接口,可以创建N个方法
- 类具有相同的接口,但参数的类型不同
- 如何与 Cheerp/js 中的 extern 变量接口?
- 如何在接口中使用QMAP