Junior — Middle
O que acontece ao chamar uma função declarada como virtual pura e como isso afeta a execução do programa?
sobes.tech IA
Resposta da IA
Uma função virtual pura em C++ é uma função declarada com = 0 na classe base, por exemplo:
class Base {
public:
virtual void foo() = 0; // função virtual pura
};
Ela não tem implementação na classe base e requer que as classes derivadas a sobrescrevam.
Se por engano, uma função virtual pura for chamada diretamente (por exemplo, através de um ponteiro ou referência a um objeto da classe base que não possui implementação), o comportamento do programa é indefinido. Normalmente, a função __cxa_pure_virtual é chamada e o programa termina de forma anormal.
Assim, uma função virtual pura serve para criar classes abstratas e interfaces, e sua chamada sem implementação leva a um erro em tempo de execução.