相关疑难解决方法(0)

什么是Mixins(作为一个概念)

我试图了解Mixin概念,但我似乎无法理解它是什么.我看待它的方式是,它是一种通过使用继承来扩展类的功能的方法.我读过人们将它们称为"抽象子类".有谁能解释为什么?

如果您根据以下示例(从我的一个演讲幻灯片中)解释您的答案,我将不胜感激: C++ Mixin示例

c++ oop templates mixins

70
推荐指数
4
解决办法
3万
查看次数

是否可以将模板派生的C++类与Qt的Q_OBJECT混合使用?

在我的应用程序中,我有以下类层次结构:

class Word
{
    ...
}

template <typename T> class Dictionary
{
    ...
};

class WordDictionary : public Dictionary<Word>
{
    Q_OBJECT

    ...
}
Run Code Online (Sandbox Code Playgroud)

WordDictionary类解析需要很长时间的字典.我正在一个单独的线程中运行解析函数,我希望它能够不时地通知GUI线程,以根据正在解析的当前行号提供进度更新.这就是我希望它成为Q_OBJECT的原因.我试图使基类Dictionary成为Q_OBJECT,但得到的消息是不支持Q_OBJECT模板.当我删除宏,只留下WordDictionary作为Q_OBJECT时,我得到一堆一般形式的错误消息:

\ GeneratedFiles \发布\ moc_dictionary.cpp(44):错误C2039: 'staticMetaObject':不是'词典'中的一员

[
T =字
]

有什么办法可以让我的模板派生的WordDictionary类成为Q_OBJECT而不是硬编码里面的模板函数,产生了很多样板代码吗?

编辑:将模板声明更改为:

template <typename T> class Dictionary : public QObject
Run Code Online (Sandbox Code Playgroud)

使代码编译.我不确定我是不是做了一些愚蠢的事情,如果能够正常工作的话.

c++ qt templates qobject

11
推荐指数
1
解决办法
9512
查看次数

我如何从QWidget和QThread继承?

我有这样的课

class GUI : public QWidget, public QThread
Run Code Online (Sandbox Code Playgroud)

当我执行上述操作时,我会收到有关连接信号的错误.The error says Reference to "connect" is ambiguous.有没有办法从两者继承?

谢谢

c++ qt qthread

7
推荐指数
1
解决办法
5874
查看次数

标签 统计

c++ ×3

qt ×2

templates ×2

mixins ×1

oop ×1

qobject ×1

qthread ×1