ExpertiDict

C++ · Essencial · Português · Técnico

função virtual

fũˈsɐ̃w̃ viɾˈtwawsubstantivo

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

Veja também

Todos os termos de C++