【发布时间】:2016-03-13 13:43:13
【问题描述】:
我正在一个项目中工作,其中在我需要继承的类中使用了 Q_OBJECT 宏。
已经定义了 Q_OBJECT 的类如下所示,
class cBaseObject : public QObject, public cinformation
{
Q_OBJECT
//...
//...
}
我正在通过 cBaseObject 的公共继承创建一个新类。我是否需要再次编写 Q_OBJECT 宏? 我尝试了使用和不使用该宏,如果我不包含 QT_MACRO,我发现没有生成 moc_XXX.cxx 文件
class cEnhancedbaseObject : public cBaseObject
{
Q_OBJECT // if i didn't include this
//no moc__XXX.cxx file is generated
}
但是当我继承类时为什么 Q_OBJECT 宏的功能也没有被继承。 如果 Q_OBJECT 宏被定义两次,如果它是继承的,有什么问题吗? Q_OBJECT 的行为如何用于多级继承。我已经读过,对于多重继承,应该首先放置 QOBJECT 类。多级继承有什么类似的吗?
【问题讨论】: