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).