非Qt基类
我正在使用Qt(我是新来的)4.8.2,用Visual Studio创build了一个名为“Contact”的基类。 我不希望这个类是Qt独占的 ,所以我的意图是创build另一个类“QContact”inheritance“Contact”,QObject处理所有与Qt相关的业务,比如Q_OBJECTmacros等。
不幸的是,当我inheritance,build设失败,说:
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类。 所以要解决它,“联系”可以inheritance“QObject”(我试过,它的工作)。 但是这样做会使它独占Qt这是我的问题。
所以我问的是:你怎样才能为Qt类创build一个非Qt的基类?
谢谢。
你可以从QObject
派生你的类,也可以从其他类派生出来,但是QObject
需要是基类列表中的第一个基类 。
所以这是错误的:
class QContact: public Contact, public QObject {};
你需要把它写成
class QContact: public QObject, public Contact {};