Classes abstratas (C++)

As classes abstratas agem como expressões de conceitos gerais das quais classes mais específicas podem ser derivadas. Não é possível criar um objeto de um tipo de classe abstrata; no entanto, é possível usar ponteiros e referências para tipos de classes abstratas.

Uma classe que contenha ao menos uma função virtual pura é considerada uma classe abstrata. Classes derivadas da classe abstrata devem implementar a função virtual pura, ou serão também classes abstratas.

Uma função virtual é declarada como “pura” usando a sintaxe especificador puro (descrita em Implementação do protocolo de classe). Considere o exemplo apresentado em Funções virtuais. A intenção da classe Account é fornecer a funcionalidade geral, mas os objetos do tipo Account são muito gerais para serem úteis. Portanto, Account é um bom candidato para uma classe abstrata:

// deriv_AbstractClasses.cpp
// compile with: /LD
class Account {
public:
   Account( double d );   // Constructor.
   virtual double GetBalance();   // Obtain balance.
   virtual void PrintBalance() = 0;   // Pure virtual function.
private:
    double _balance;
};

A única diferença entre essa declaração e a anterior é que PrintBalance é declarado com o especificador puro (= 0).

Consulte também

Referência

Classes derivadas