Junior — Middle
É possível definir em C++ uma classe que contenha apenas funções virtuais puras e que não possa ser criada diretamente?
sobes.tech IA
Resposta da IA
Sim, em C++ é possível definir uma classe que contenha apenas funções virtuais puras, e tal classe não pode ser criada diretamente. Essa classe é chamada de classe abstrata. Ela serve como interface ou classe base para os herdeiros que devem implementar todas as funções virtuais puras.
Exemplo:
class Interface {
public:
virtual void doSomething() = 0; // função virtual pura
virtual ~Interface() = default;
};
// Não é possível criar um objeto Interface diretamente:
// Interface obj; // erro de compilação
class Implementation : public Interface {
public:
void doSomething() override {
// implementação
}
};
int main() {
Implementation impl;
impl.doSomething();
}