Classes abstratas em c ++
Como intelectualmente satisfatória como factoring está em C ++, que introduz um problema próprio. Num exemplo de cerca de classes de conta bancários, especificamente da classe de base comum Conta.
Conteúdo
Video: Dicas de C++ - Usando Polimorfismo com Classe Base Abstrata(Virtual)
A maioria Conta funções de membro não são um problema porque ambos os tipos de conta de implementá-las da mesma forma. A implementação destas funções comuns com Conta::retirada() é diferente, no entanto.
As regras para a retirada de uma conta poupança são diferentes daqueles para a retirada de uma conta corrente. Você vai ter que implementar Poupança :: retirada () diferente do que você Verificando :: retirada (). Mas como você é suposto para implementar Conta :: retirada ()?
Vamos pedir ao gerente do banco para obter ajuda. A conversa poderia ir algo como o seguinte:
“Quais são as regras para fazer uma retirada de uma conta?”, Você pergunta.
“Que tipo de conta? Corrente ou poupança?”Vem a resposta.
Video: 3.Class and Object in c++ defining an employee class with data members and member functions
“A partir de uma conta”, você diz. “Apenas uma conta.”
olhar vazio.
Video: C++ Tutorial for Beginners 40 - Class Templates
O problema é que a pergunta não faz sentido. Não há tal coisa como “apenas uma conta.” Todas as contas (neste exemplo) são ou contas correntes ou de poupança contas. O conceito de uma conta é abstrata que fatores fora propriedades comuns às duas classes concretas.
É incompleta porque não tem a propriedade crítica retirada(). (Depois de obter ainda mais em detalhes, você pode encontrar outras propriedades que uma conta simples não tem.)
A classe abstrata é um que só existe em subclasses. UMA classe concreta é uma classe que não é abstrato.