Estoy usando Qt (que soy nuevo) 4.8.2, con Visual Studio, y he creado una clase base llamada "Contacto". No quiero que esta clase sea exclusiva de Qt, así que mi intención era crear otra clase "QContact" que heredara "Contacto", y QObject y tratar con todo el negocio relacionado con Qt, como la macro Q_OBJECT etc.Clases base sin Qt
Desafortunadamente cuando heredé, la compilación falló, diciendo:
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'
Hice un poco de investigación en la web, y se informó que no se puede derivar una clase de la clase Qt no-Qt. entonces, para solucionarlo, "Contacto" podría heredar "QObject" (lo intenté, funcionó). pero hacerlo lo hará exclusivo de Qt, que es mi problema.
Así que lo que pregunto es esto: ¿Cómo se puede hacer una clase base no Qt para una clase Qt?
Gracias.
Eso significa que la clase no tendrá uso fuera de los proyectos de Qt. ¿No hay manera de evitarlo? – MasterMastic
@Ken no entiendo lo que eso significa. Si 'Contact' no tiene nada que hacer con' QObject', ¿por qué "no tendrá usos fuera de los proyectos de Qt"? ¿No era esta tu idea para archivar ese objetivo en primer lugar? –
Lo siento, simplificaré: Quiero que "Contacto" NO herede de "QObject", porque si quiero usarlo para otros proyectos, tendré la clase base de QObject atrapada allí, y eso es problema con los proyectos que no son Qt. – MasterMastic