我无法编译带有通用成员函数和变量的qt插件。这个想法是:我有一个插件A1使用其他插件的未指定类型T(其他接口)。 A1实现了接口(抽象类)A.在A中我需要一个传递其他插件的函数。C++替代Qt插件接口中的模板类
它看起来像这样:
template <typename T>
class A {
public:
void setPlugins(QList<T*>* plugins)
{
plugins_ = plugins;
}
private:
QList<T*>* plugins_;
};
我希望我已经明白模板正确的,但我认为这应该正常工作。现在的问题是,似乎无法将插件接口(A)定义为具有Qt插件概念的模板类。有另一种方法可以做我想做的事吗?
编辑: 我宁愿没有RTTI的解决方案。
......如果你不使用'-fno-rtti'。 – 2011-03-03 15:20:48
这个想法很好,应该可以工作,但是:要设置的插件的接口不是QObject,只能是它们的实现。这意味着我必须将调用者的列表声明为QObject的列表*什么不是很好处理,特别是在删除此列表以放入加载的插件(正如我现在所做的那样)时。但也许这是做到这一点的唯一可能性。 – FunkyClaude 2011-03-04 09:06:40
@Mike DeSimone:你说得对。也许有人知道没有RTTI的解决方案? – FunkyClaude 2011-03-04 12:50:59