Compartilhar via


Classes abstratas (C++)

Classes abstratas atuam como expressões de conceitos gerais do qual podem ser derivados classes mais específicas.Não é possível criar um objeto do tipo classe abstrata; No entanto, você pode usar ponteiros e referências à classe tipos abstratos.

Uma classe que contém pelo menos um de função virtual pura é considerada uma classe abstrata.Classes derivadas da classe abstrata devem implementar a função virtual pura ou, também, são classes abstratas.

Uma função virtual é declarada como "pura" usando o puro especificador sintaxe (descrito 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 ser útil.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 anterior é que PrintBalance é declarada com o especificador puro (= 0).

Consulte também

Referência

Classes derivadas