我正在使用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基类?
谢谢。