GTKmm: Problema con herencia múltiple

Buenos días, estoy haciendo una aplicación y utilizo la librería GTKmm. He creado una serie de clases:
class pagina: public Gtk::VBox
{
   public:
      //Variables, constructor y metodos.
   public:
      virtual int pideConfirmacion(contenedorPaginas *parent);
};
      
// Interfaz que define dos funciones que debe tener cada contenedor de paginas
class contenedorPaginas: public Gtk::Window
{
   public:
      virtual void espera() = 0;
      virtual void continua() = 0;
};
      
class contenedor1 : public contenedorPaginas, public Gtk::Dialog
{
   // Variables y metodos.
   void espera();
   void continua();
};


El problema que tengo es que la función virtual pideConfirmacion, hace una llamada a una función que necesita que se le introduzca como parámetro el padre de la pagina que debe ser de tipo Gtk::Window, por eso obligo a que toda las subclases del contenedor de paginas sean Gtk::Window. Pero luego quiero crear un contenedor que específicamente sea de tipo Gtk::Dialog (subclase de Gtk::Window) y se da el problema del diamante:

contenedorPaginas <- Gtk::Window -> Gtk::Dialog
contenedorPaginas -> contenedor1 <- Gtk::Dialog

El problema se explica de forma bastante clara en el siguiente enlace.

No puedo resolverlo con herencia virtual porque la definición de Gtk::Dialog es por herencia simple y no virtual.

Sé que es posible resolverlo cambiando el diagrama de clases, pero me gustaría saber bien como se puede utilizar la herencia múltiple.

Gracias y un saludo.
0 respuestas