Título: herencia : funcion virtual no se ejecuta.. Publicado por: digimikeh en 15 Noviembre 2020, 02:03 am Hola amigos..
Que pasa en este codigo que la funcion virtual do_xy() en x no se está ejecutando? Código
Saludos.. gracias. Título: Re: herencia : funcion virtual no se ejecuta.. Publicado por: K-YreX en 15 Noviembre 2020, 02:31 am Claro.
En este caso en concreto no se ejecuta por 2 motivos:
Si creas las funciones sin usar virtual, se decide en tiempo de compilación a qué función llamar: Código
En cambio, si definimos la función como virtual: Código
No sé si se ve bien. La diferencia es que si la función es virtual, en tiempo de ejecución se comprueba de qué tipo es la variable a la que está apuntando un puntero y se utiliza su función correspondiente. Si no se usa virtual, el compilador coge el tipo del puntero y llama a la función de su clase sin importarle de qué clase es la variable a la que apunta. Título: Re: herencia : funcion virtual no se ejecuta.. Publicado por: digimikeh en 15 Noviembre 2020, 02:38 am Entiendo, gracias..
La idea mia es que se ejecute en cadena.. como un ensamble, es decir, la linea Código
deberia ejecutar: from x from y por esta razon utilice el keyword "override"... Título: Re: herencia : funcion virtual no se ejecuta.. Publicado por: K-YreX en 15 Noviembre 2020, 02:52 am Para llamar a la función de la clase base tienes que usar ::.
Código
SALIDA: Código: Base Título: Re: herencia : funcion virtual no se ejecuta.. Publicado por: digimikeh en 15 Noviembre 2020, 03:01 am perfect!!!... muchas gracias
|