ExpertiDict

C++ · Essencial · Português · Técnico

classe abstrata

ˈklasi abisˈtɾatɐsubstantivo

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 abstrata

Exemplos

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

Veja também

Todos os termos de C++