se creará
mesa Virual sólo si al menos 1 función virtual es allí en la clase Base, que se hereda de ninguna manera a la. classes.it derivadas no importa incluso si elimina la palabra clave virtual de la clase derivada B porque ya tiene una diversión virtual() en A. Así que el número de tablas virtuales será 2 (como su base de clase) y el número de virtual ptrs también será 2, como su base de objeto.VTABLE para A --- v_ptr *, A :: fun()
& VTABLE para B --- V_ptr * (que se heredó de A), B :: diversión()/* B tiene acceso a ambos A :: diversión & diversión de B(), pero como mencionamos A :: fun() como virtual, la tabla virtual de B se llena con la versión más derivada de la función, fun(), que no es más que B :: diversión(). espero que esto aclare ur duda
ahora si modifico mi pgm como a continuación: elimino la palabra clave virtual de la clase derivada. Ahora, ¿cuántos vtables se crearán? – CodeCodeCode
@Pal - No hay diferencia, la función sigue siendo virtual. –
@Bo Persson: la función es virtual pero, ¿habrá un vtable creado para la clase derivada también? – CodeCodeCode