我正在使用Qt(我是新手)4.8.2,使用Visual Studio,我创建了一个名为"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'
Run Code Online (Sandbox Code Playgroud)
我在网上做了一些研究,发现你不能从非Qt类中派生出一个Qt类.所以要解决它,"联系"可以继承"QObject"(我试过,它有效).但这样做会使它成为Qt独有的,这是我的问题.
所以我要问的是:如何为Qt类创建非Qt基类?
谢谢.
Joh*_*itb 84
您可以QObject
从不从它派生的其他类派生您的类,但QObject
需要是基类列表中的第一个基类.
所以这是错的:
class QContact: public Contact, public QObject {};
Run Code Online (Sandbox Code Playgroud)
你需要把它写成
class QContact: public QObject, public Contact {};
Run Code Online (Sandbox Code Playgroud)