Polimorfismo
:rolleyes:
Considere o fragmento de código abaixo, ele funciona perfeitamente:
int main()
{
//Classe base Areas_fig_planas
Areas_fig_planas *p; // Cria ponteiro para classe
//Areas_fig_planas
Areas_fig_planas Area_Bse; // instancia classe base
p=&Area_Bse; // p aponta para objeto do
// tipo Areas_fig_planas
p->Area(); // Acessa a função Área da classe base
//==============================================
//Classe derivada Area_Quadado
Area_Quadado Area_quadr; //Instancia Area_Quadado
p=&Area_quadr; // p aponta para objeto do tipo
// Area_Quadado, que é um objeto
// derivado de Areas_fig_planas.
p->Area(); // Acessa a função Área da classe derivada
//Area_Quadado.
//===============================================
//Classe derivada Área_Triangulo
Area_Triangulo Area_triang; //Comentários idem acima
p=&Area_triang;
p->Area();
Pergunta: Se eu quiser chamar outra vez a área do quadrado, por exemplo, terei de fazer:
Area_Quadado Area_quadr;
p=&Area_quadr;
p->Area();
Novamente no programa ? teria uma forma alternativa para evitar a redundância de código ?
obrigado
Discussão (6)
Carregando comentários...