cçasse

342 palavras 2 páginas
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 classe abstrata.
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;
};
Por que uma classe abstrata?

O principal motivo é por que você ia ficar repetindo código em todas as classes semelhantes, ou de um grupo comum (também existem questões arquiteturais ). Voltamos ao nosso exemplo do animal. Todo animal (mais uma vez, para efeito de exemplo, vamos dizer que todos esquecendo as exceções) se move. E é possível definir um se move para a maioria deles, embora tenhamos algumas exceções. Mas isso nos levará ao polimorfismo, que é um assunto para outra hora(ou não) .

O fato é que em Animal podemos colocar tudo que um animal faz e nas classes filhas especializar os métodos. E não só métodos, temos atributos que podem ser comuns, tais como nome, classe (mamífero, ave, peixe...), onde é encontrado comumente...

Por que não podemos instanciar uma classe abstrata

Não faz sentido temos um objeto de animal, mas sim um Cachorro,

Relacionados

  • explanação orientacional
    3203 palavras | 13 páginas