【发布时间】:2012-04-19 05:22:51
【问题描述】:
我正在创建一个抽象基类,并在想我可能想要一个纯虚拟信号。但是当我编译时,我收到了我定义的纯虚拟信号的警告:
../FILE1.h:27: Warning: Signals cannot be declared virtual
../FILE1.h:28: Warning: Signals cannot be declared virtual
在 C++/Qt 中定义纯虚信号有效吗?定义虚拟信号有效吗?
Qt's signal and slot documentation page 说您可以定义虚拟插槽,但不谈论信号。我似乎找不到关于纯虚拟信号的好信息。
【问题讨论】:
-
你为什么要让信号虚拟化?
-
另一种方法,使用 CRTP 和通用基类,in this answer。它允许轻松分解出多个
QObject派生类共有的代码,即使它们派生自不同的基类(当然,它们不需要直接派生自QObject)。
标签: c++ qt abstract-class signals-slots