¿Qué significa cuando "virtual" está en "clase Foo: barra virtual pública" en lugar de "virtual void frob()"?¿Qué significa cuando "virtual" está en "clase Foo: barra virtual pública" en lugar de "virtual void frob()"?
Para un método dado, hay 8 casos derivados de la presencia o ausencia de virtual en las siguientes tres ubicaciones.
- Funciones de una superclase.
- La cadena de herencia para esta clase.
- Esta clase funciona.
Creo que entiendo cómo los números 1 y 3 interactúan, pero el número 2 parece redundante. ¿Lo es? ¿Qué no estoy entendiendo?