Please enable JavaScript.
Coggle requires JavaScript to display documents.
Herança - Coggle Diagram
Herança
Conversao de tipo em heranca
Conversao implicita
E possivel a conversao implicita de uma classe derivada para uma classe base
Ocorre em objetos da classe base, ponteiros e referencias da classe base
Conversao explicita
Converter de uma classe derivada para uma classe base tambem e possivel de forma explicita
Em uma conversao dessas e possivel que ocorra perda de informacao
Upcast
Da classe derivada para a classe base
Subir na arvore da hierarquia
Sempre e possivel e seguro
Pode ser feito de maneira implicita
Downcast
Da classe base para a classe derivada
Descer a arvore de hierarquia
Precisa ser feito de maneira cuidadosa e explicita
Precisa ser feito de forma explicita
Exemplo de downcasts
static_cast<type>
Conceitos de herança
Intuição
Ferramenta para reutilização de codigo
Estrutura principal
Classes base(pai)
Classes derivadas(Filho)
Classe B
Classe C
Classe D
B e uma classe base indireta para D
B e uma classe base direta para C
Classe base
Herança de membros privados
Nao pode ser acessada por membros herdeiros
Por padrao os membros sao definidos como privados
Herança de membros publicos
Pode ser acessada por membros quaisquer
Metodos de acesso
O compilador chama oi metodo na classe derivada primeiro
Caso nao seja encontrado o compilador sobe um nivel na arvore ate encontrar
E possivel acessa metodos da classe base ainda que seja redefinida com um operador
Regras de redefinicao
Caso o nome nao ocorra na classe base
Sem redefinicao
Caso o nom ja exista na classe base
Redefinicao
Membros protegidos
Protected e utilizado para se ter acesso aos membros dentro classe derivada
Relação de "é"
Abstração de dados
Reusabilidade
Propriedaes da classe carro
Carro de passeio herda essas caracteristicas e possui suas proprias
Caminha herda essas caracteristicas e possui suas proprias
Exemplos
Exemplos de classes derivadas
Exemplos de construtores de destrutores
Ponteiros e referencias
O ponteiro da classe base pode apontar para a classe derivada
Mas so pode chamar os membros da classe base
Exemplos de conversao em referencias para a classe base
Leitura adcional, capitulos 23 e 24