C++ · Essencial · Português · Técnico
classe abstrata
Classe com ao menos uma função virtual pura, declarada com = 0. Não pode ser instanciada e serve de interface que as classes derivadas precisam implementar.
Onde usar
Usada para definir contratos, como Forma ou Logger, quando o código cliente deve depender de uma interface. O compilador recusa instanciar o tipo abstrato quando falta implementar algum método puro.
Em código
struct Logger {
virtual void log(const char* msg) = 0;
virtual ~Logger() = default;
};
// Logger l; // erro: classe abstrataExemplos
Faça Repositorio uma classe abstrata e injete a implementação.
O compilador não deixa instanciar a classe abstrata.
Cuidado
Em C++ não existe a palavra abstract; a abstração vem de ter ao menos uma função virtual pura.
Sinônimos
interface
Antônimos
classe concreta