Tema: Herencia
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/09/2009, 08:44
alais
 
Fecha de Ingreso: septiembre-2007
Mensajes: 5
Antigüedad: 17 años, 4 meses
Puntos: 0
Herencia

Buenas

Tengo una duda relacionada con herencia que podría tener varias soluciones, y me gustaría saber vuestra opinión.

Mi clase padre sería algo así:

class Padre {
Padre() {
...
funcion();
}

void funcion() {
...
}
}

La clase hija sobrecarga la función:

class Hijo : public Padre {
void funcion() {
...
}
}


Al instanciar la clase hija y ejecutarse el constructor de la clase base, me gustaría que llamara a la función sobrecargada en la hija, y sin embargo se ejecuta la función base.

Es obvio que esta no es la forma de hacerlo, pero no se me ocurre ninguna forma elegante y limpia de resolverlo.

Podría quitar la llamada a la función en el constructor padre y hacer:

Hijo* hijo = new Hijo();
hijo->funcion();

pero en realidad son muchas las funciones que utilizo dentro del constructor, y varias las clases hijas, con lo que se haría bastante farragoso.

Os agradecería cualquier ayuda al respecto.

Última edición por alais; 25/09/2009 a las 05:56