Juntamente com a herança, os construtores também são essenciais em C++. A construtor é uma função de membro exclusiva que permite inicializar as propriedades do objeto. Um Construtor de herança é um construtor usado para inicializar a classe base e os objetos da classe derivada que a classe derivada herdou. O construtor de herança é responsável por inicializar os membros da classe base herdados e os membros da classe derivada. Para conseguir isso, o construtor invoca o construtor da classe base, garantindo que todos os membros da classe derivada sejam inicializados corretamente, incluindo aqueles herdados da classe base.
Ao invocar o construtor da classe base e passar a ele os parâmetros necessários, o construtor de herança inicializa os membros da classe base. Isso é realizado usando o 'classe base(args)' lista de inicialização no construtor. Mais instruções específicas para a classe derivada são fornecidas no corpo do construtor.
A sintaxe para herdar uma classe em C++ é:
aula Classe derivada : accessSpecifier BaseClass {
// membros da classe
} ;
A nova classe sendo formada neste caso, 'Classe derivada', herdará de “Classe Base”. O nível de acesso aos membros herdados é especificado pelo “ accessSpecifier”. C++ utiliza três tipos de especificadores de acesso, a saber: 'público Privado', e 'protegido' . A palavra 'público' indica que a classe derivada tem acesso aos membros públicos da classe base. A classe derivada não tem acesso aos membros da classe base, de acordo com o 'privado' especificador. A classe derivada tem acesso aos membros protegidos da classe base que podem ser herdados por suas classes filhas, de acordo com o 'protegido' especificador.
Exemplo de Herança em C++
O exemplo a seguir mostra a implementação de Herança em C++:
#include
usando namespace std ;
aula Animal {
público :
vazio comer ( ) {
cout << 'Eu posso comer!' << fim ;
}
vazio dormir ( ) {
cout << 'Eu posso dormir!' << fim ;
}
} ;
aula Gato : público Animal {
público :
vazio Miau ( ) {
cout << 'Eu posso miar!' << fim ;
}
} ;
int principal ( ) {
gato gato1 ;
gato1. comer ( ) ;
gato1. dormir ( ) ;
gato1. Miau ( ) ;
retornar 0 ;
}
O código fornecido define duas classes, 'Animal' e 'Gato' , onde 'Gato' é derivado de 'Animal' . Ambas as classes têm algumas funções de membro, como “comer”, “dormir” , e 'Miau' . A função main cria um objeto da classe 'Gato' e chama o herdado funções da classe 'Animal' bem como a função específica da classe 'Gato' , qual é 'Miau' . O programa envia o texto para o console, indicando que o gato pode comer, dormir e miar.
Saída
Quando uma classe é derivada, todas as variáveis e funções-membro da classe base são transferidas para a classe derivada. O herdado a acessibilidade dos membros na classe derivada é determinada pelo especificador de acesso. A classe derivada também pode substituir novos recursos por aqueles que já existem. Ele pode adicionar novas implementações para os métodos da classe base e adicionar novas funções e variáveis de membro.
É fundamental lembrar que o construtor de herança deve ser usado para chamar explicitamente o construtor da classe base com os parâmetros necessários se a classe base tiver um construtor padrão ou se não estiver disponível.
Conclusão
A forte característica de herança em C++ permite que classes reutilizem código herdando características e ações de outras. Um recurso útil do C++ construtor de herança permite que classes derivadas herdem as propriedades, métodos e membros de dados de uma classe base. Com a adição de uma lista de inicialização para construtores de classe base, ele é definido usando a mesma sintaxe de um construtor padrão. Os programadores C++ podem minimizar a duplicação de código e aprimorar a estrutura do código utilizando o construtor de herança . Para criar hierarquias de classes complexas em programação orientada a objetos, é uma ferramenta importante.