Vi el código en una clase derivada recientemente en la que el programador puso virtual
en frente de las funciones anuladas. ¿Es esto común? Pensé que era muy extraño y me pilló desprevenido.Usando 'virtual' en la clase derivada
Editar: No estoy preguntando qué hace virtual, estoy preguntando por qué alguien pondría virtual en una clase derivada que ya está anulando funciones virtuales en su clase base.
EX:
class B {
public:
virtual void foo();
....
};
class D : public B {
public:
virtual void foo(); // could have just put void foo();
...
};
Siempre hago esto también, solo para documentar mi código. –
Esto es algo en lo que creo que C# es mejor, forzando a las clases derivadas a usar la palabra clave 'override'. – dalle
Esta es la pregunta perfecta, que respondió muchas de mis consultas sobre cómo funciona la tecnología virtual. Gracias @Person –