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.