gpt4 book ai didi

c++ - 非 Qt 基类

转载 作者:IT老高 更新时间:2023-10-28 14:00:39 25 4
gpt4 key购买 nike

我在 Visual Studio 中使用 Qt(我是新手)4.8.2,并且我创建了一个名为“Contact”的基类。 我不希望这个类是 Qt 独有的,所以我的意图是创建另一个类“QContact”,它将继承“Contact”,以及 QObject 并处理所有与 Qt 相关的业务,比如 Q_OBJECT 宏等。

不幸的是,当我继承时,构建失败,说:

moc_QContact.cpp(53): error C2039: 'staticMetaObject' : is not a member of 'Contact'
moc_QContact.cpp(75): error C2039: 'qt_metacast' : is not a member of 'Contact'
moc_QContact.cpp(80): error C2039: 'qt_metacall' : is not a member of 'Contact'

我在网上做了一些研究,发现不能从非 Qt 类派生 Qt 类。所以要修复它,“Contact”可以继承“QObject”(我试过了,它有效)。但这样做会使其专属于 Qt,这是我的问题。

所以我要问的是:如何为 Qt 类创建非 Qt 基类?

谢谢。

最佳答案

您可以从 QObject 和其他不从它派生的类派生您的类,但 QObject needs to be the first base class在基类列表中。

所以这是错误的:

class QContact: public Contact, public QObject {};

你需要写成

class QContact: public QObject, public Contact {};

关于c++ - 非 Qt 基类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11807510/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com