Junior — Middle
Pode explicar o que é uma classe abstrata e em que ela difere de uma classe normal?
sobes.tech IA
Resposta da IA
Uma classe abstrata é uma classe que não é destinada a criar instâncias diretamente, mas serve como base para outras classes. Em C++, uma classe abstrata é definida pela presença de pelo menos uma função virtual pura.
Diferenças entre uma classe abstrata e uma normal:
- Não é possível criar um objeto de uma classe abstrata diretamente.
- Contém pelo menos uma função virtual pura, que deve ser implementada pelas classes derivadas.
- É usada para definir a interface e a funcionalidade geral que as subclasses devem herdar.
Exemplo:
class AbstractBase {
public:
virtual void doSomething() = 0; // função virtual pura
};
class Derived : public AbstractBase {
public:
void doSomething() override {
// implementação
}
};
// AbstractBase obj; // erro, não é possível criar um objeto de uma classe abstrata
Derived d; // correto