Programar em C++/Herança: diferenças entre revisões

[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
Linha 55:
};
enum tipo {carro, van, vagao};
class automoveisautomovel : public veiculo_rodoviario // Define an automoble.
{
enum tipo car_tipo;
Linha 86:
{
caminhao t1, t2;
automoveisautomovel c;
t1.set_rodas(18);
t1.set_pass(2);
Linha 107:
}
</source>
Na implementação acima temos a classe base road_vehicle e duas classes derivadas“:” truck e automobile.
 
Na implementação acima temos a classe base road_vehicleveiculo_rodoviario e duas classes derivadas“derivadas “:” truckcaminhao e automobileautomovel.
Repare ainda um pormenor: tanto a classe truck quanto a automobile têm como método membro o método show(), mas uma não interfere com a outra. Isto ilustra um outro aspecto do polimorfismo.
Podemos notar que as características comuns a todos os tipos de veículos, rodas e passageiros, estão na classe base, enquanto as características exclusivas de cada tipo de veículo estão nas classes derivadas. Desta forma podemos definir procedimentos especializados para cada classe, fazendo com que todas as eventuais modificações feitas ao longo da implementação na classe base sejam estendidas a todos os objetos criados a partir das classes derivadas no programa.
 
 
Repare ainda um pormenor: tanto a classe truck"caminhao" quanto a automobileautomovel têm como métodofunção membro o método show(), mas uma não interfere com a outra. Isto ilustra um outro aspecto doda orientação a objeto, o polimorfismo. Este será exposto em mais detalhe nos capítulos subsequentes.
 
== Controle de acesso à classe base ==