Sobes.tech
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