C++ · Essencial · Português · Técnico
função virtual
Função membro declarada com virtual, cuja versão chamada é escolhida em tempo de execução conforme o tipo real do objeto. Permite que classes derivadas a sobrescrevam.
Onde usar
Aparece no projeto de hierarquias em que a base define uma interface e as derivadas especializam o comportamento. Esquecer o virtual faz a versão da base ser chamada mesmo com objeto derivado.
Em código
struct Base {
virtual void falar() { puts("base"); }
};
struct Der : Base {
void falar() override { puts("der"); }
};Exemplos
Marque como função virtual para a derivada poder sobrescrever.
Esse método não é virtual, então a chamada pela base ignora a derivada.
Cuidado
Não confunda sobrescrever uma virtual com apenas esconder o nome da base ao declarar, na derivada, uma função de mesmo nome e outra assinatura.
Sinônimos
método virtual