Ver Mensaje Individual
  #3 (permalink)  
Antiguo 10/01/2016, 09:48
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: Problema con herencia de clase QObject

Qt NO permite la doble herencia de QObject.

¿Por qué? Pues básicamente porque los objetos QObject tienen metadatos. Entre estos metadatos se encuentran las señales y ¿sabes qué? Las señales están mapeadas por identificadores numéricos y dichos identificadores empiezan SIEMPRE desde el 0.

Esto quiere decir que si coges dos QObject vas a tener varias señales solapadas y, como puedes imaginar, eso no puede ser bueno para la salud de tu programa.

Lo que te ha explicado xKuZz es la forma general de resolver una herencia en diamante, pero no va a solucionarte los problemas relacionados con las señales... y esto es así porque los metadatos no los genera el compilador de C++ sino el generador de mocs de Qt... que se ejecuta antes que el compilador y que no suele tener contemplaciones con este tipo de diseño.

Solución: Evitar la herencia múltiple de QObject.

Un saludo.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.