非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 {};