Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/01/2016, 16:14
Avatar de xKuZz
xKuZz
 
Fecha de Ingreso: febrero-2015
Ubicación: nullptr
Mensajes: 183
Antigüedad: 9 años, 8 meses
Puntos: 27
Respuesta: Problema con herencia de clase QObject

En primer lugar cuando tienes este tipo de jerarquía de clases en "forma de diamante", necesitas utilizar la palabra reservada virtual. Con esto sólo hay una única instancia de la base para todas las clases que heredan. Por tanto para el primer problema que tenías lo correcto es lo que habías hecho:

Código C++:
Ver original
  1. class e : public virtual QObject {};
  2. class d : public virtual QObject {};
  3. class c : public virtual QObject {};
  4. class b : public c,d,e {};
  5. class a : public b {};

El segundo problema viene de la clase MainWindow, que supongo por el error que será una de las que tienen herencia virtual de QObject. El hecho de que ahora todos compartan la misma instancia implica que no se puedan hacer el casting en tiempo de compilación sino en tiempo de ejecución por tanto debes usar dynamic_cast en vez de static_cast