Ver Mensaje Individual
  #7 (permalink)  
Antiguo 27/03/2014, 10:57
CalgaryCorpus
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 11 meses
Puntos: 61
Respuesta: Herencia en C++, llamando a Funciones heredadas

Si quieres comportamiento modificado en la clase derivada, pero quieres que el metodo invocado reaccione de acuerdo al tipo de objeto, tienes que definir en la clase base el metodo (o los metodos) como virtuales.

Si tuvieras una funcion

Código C++:
Ver original
  1. void f( Vehiculo* pvehiculo ) {
  2.      pvehiculo->metodo_virtual();
  3. }

esta funcion trabajaria tanto con vehiculos como con derivados de este, y se invocaría siempre el metodo mas "cercano" (en el caso de los derivados, el metodo definido en esa particular clase).

El no definirlo virtual hará que la función mostrada siempre invoque el método de la clase base, y necesitarías otra(s) función(es)para invocar los derivados.

Entonces: Lo recomendable es que definas los métodos a redefinir como virtuales en la clase base.
__________________
Visita mi perfil en LinkedIn