Luiz_Junior Postado Março 1, 2005 Denunciar Share Postado Março 1, 2005 Bem gente o código eu não entendi muito bem sobre Polimorfismo, achei meio complicado, se alguém puder explicar ai e comentar eu agradeço muito. #include <iostream>#include <conio.h>using namespace std;class pai{ protected: int j,k; public: void setJ(int new j); void setK(int new k); int setJ(); int setK();}; class filha:{ public pai{ protected: int m,n; public: void setM(int new m); void setN(int new n); int getM(); int getN();};void pai::setJ(int new j){ j=new j;}void pai::setK(int new k){ k-new k;}int pai::getJ(){ return j;}int pai::getK(){ return k;}void filha::setM(int new m){ m=newm;}void filha::setN(int new n);{ n=new n;}int filha::getM(){ return m;}int filha::getN(){ return n;} int main(){ pai prnt,prntl; filha chld, chldl; prnt=chld; pai*pp=&chld; pai& rr=chld; pp=&prntl; pp=&&chldl; pai* list[4]; list[0]=&prnt; list[1]=&chdld; list[2]=&prntl; list[3]=&chldl;}Pronto o código é esse ai sobre Polimorfismo. alguém ajudae gente, quanto mais ajuda melhor. Vlws Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 3, 2005 Denunciar Share Postado Março 3, 2005 De onde você tirou esse código? Existem inúmeros erros nele que impedem a compilação do mesmo. De qualquer forma, consegui fazê-lo funcionar e segue abaixo o código:#include <iostream> #include <conio.h> using namespace std; class pai{ protected: int j,k; public: void setJ(int j); void setK(int k); int getJ(); int getK(); }; class filha : public pai { protected: int m,n; public: void setM(int m); void setN(int n); int getM(); int getN(); }; void pai::setJ(int j) { this->j=j; } void pai::setK(int k) { this->k=k; } int pai::getJ() { return j; } int pai::getK() { return k; } void filha::setM(int m) { this->m=m; } void filha::setN(int n) { this->n=n; } int filha::getM() { return m; } int filha::getN() { return n; } int main() { pai prnt,prntl; filha chld, chldl; prnt = chld; pai *pp = &chld; pai &rr = chld; pp = &prntl; pp = &chldl; pai* list[4]; list[0]=&prnt; list[1]=&chld; list[2]=&prntl; list[3]=&chldl; }A idéia desse código, e consequentemente do polimorfismo, é mostrar que duas classes são intercambiáveis no sentido da classe paterna. Em outras palavras, é dizer que um objeto da classe pai pode referenciar a um objeto da classe filha, desde que esta herde a primeira. Trazendo para um outro exemplo, acho que fica melhor de compreender. Imagine duas classes, chamadas Empregado e Gerente. É fácil compreender que todo gerente *é* um empregado, mas que *nem todo* empregado é um gerente. Portanto, a classe Gerente (e quaisquer outras classes que possamos imaginar, como Atendente, Programador, Digitador, Vendedor, etc.) vai herdar os métodos e atributos provenientes de Empregado. Supondo que em algum lugar do código eu precise passar um argumento cujo valor vai ser de um empregado qualquer, como eu o definiria? Eu teria que ter uma função (método) para cada um dos tipos (Gerente, Programador, Atendente, etc.)? Obviamente que isto seria custoso, portanto, já que todos eles (os tipos) são subclasses ("filhos") de Empregado, basta que eu defina esse tipo e poderei passar qualquer um deles. Poli = "muitos/muitas", morfo = "forma", portanto polimorfo significa "muitas formas". E é exatamente isso que se tem: um único objeto (Empregado) pode ter várias formas (Gerente, Atendente, Programador, Vendedor). Sacou? Não sou nenhum expert em OO, mas é assim que eu vejo o polimorfismo. Já vi pessoas falando que a possibilidade de um método ter várias assinaturas diferentes também é uma capacidade do polimorfismo, mas não confirmo a veracidade de tal afirmação (já que, inclusive, existe um nome para isso: "sobrecarga de métodos"). A idéia é, em sua essência, a mesma acima, todavia só se aplica aos métodos e não aos objetos em si.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Luiz_Junior
Bem gente o código eu não entendi muito bem sobre Polimorfismo, achei meio complicado, se alguém puder explicar ai e comentar eu agradeço muito.
Pronto o código é esse ai sobre Polimorfismo.
alguém ajudae gente, quanto mais ajuda melhor.
Vlws
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.