diferença entre

L

LBdgWgt

Guest
Oi tudo,

Estou bastante usado para programar em C, mas para POO eu não tenho noção ainda bastante profunda.Eu tenho (talvez) uma questão simples: qual é a diferença entre (Função) sobrecarga no conceito C e polimorfismo em C ?como eu observei, eles têm quase as mesmas finalidades: fornecer uma definição única (nome) para muitos tipos de dados.mas eu também observei que em polimorfismo, não é apenas para as funções, mas também para os operadores.quaisquer outras diferenças?

Obrigado pela resposta,

 
Na verdade, sobrecarga e polimorfismo é a mesma coisa.
Deixe-me dar um exemplo:
Digamos que você tenha uma função que imprime o que você envia a ela (int, char, ..)

No caso de você não usar t sobrecarga (polimorfismo), você vai precisar fazer uma nova função (uma função diferente) para cada tipo:

displayOneInt (int x)
(
cout <<x;
)

displayOneChar void (char c)
(
cout <<c;
)

displayTwoInt (int x, int y)
(
cout <<x <<y;
)

displayThreeChar void (char c1, c2 char, char c3)

(
cout <<c1 <<c2 <<c3;
)

e assim por diante ..

Mas no caso de você usar a sobrecarga (polimorfismo), você vai ter uma função (o mesmo nome), mas com implementações diferentes:

void display (int x)
(
cout <<x;
)

void display (int x, int y)
(
cout <<x <<y;
)

void display (char c)
(
cout <<c;
)
void display (char c1, char c2)
(
cout <<c1 <<c2;
)

Como você pode ver, neste caso, tudo que você tem a fazer é chamar a função de mostrar a principal e dar-lhe um ou dois int int ou um char e assim por diante, eo compilador irá mapear a sua chamada o protótipo da função correta.Isso é o que chamamos de sobrecarga ou de polimorfismo.

Sobre a parte dos operadores ..Os operadores são funções também.Só que elas não são escritas por você.para que elas são encapsuladas para protecção (característica central OOP).Assim, você pode sobrecarregar-los tão bem, mas você não pode editar o seu código original.Então, basicamente você está fazendo a mesma coisa que no exemplo acima.
Espero que responda à sua pergunta.

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Muito feliz" border="0" />
 
Sobrecarga é uma aplicação de polimorfismo.

Polimorfismo é um conceito abstracto.

 
Olá amigo,Na verdade Polimorfismo é o conceito em que temos um nome de função é o mesmo, mas um argumento ou o tipo de retorno é diferente.A sobrecarga é a abordagem prática para atingir polimorfismo.Tenha um bom dia .......

 
Polimorfismo significa uma entidade existente em múltiplas formas.Ele oferece a flexibilidade de sistemas de aplicação.Ele simplifica a codificação e reduz o retrabalho envolvido na modificação e desenvolvimento de uma aplicação.Refere-se à capacidade de um objeto para assumir diferentes formas, dependendo da situação.

De acordo com o princípio de design do polimorfismo, a mesma mensagem enviada a resultados diferentes objetos em um comportamento diferente.O comportamento depende do tipo de objeto que recebe a mensagem.

Exemplo:
Cada tecla do teclado executa uma ação específica, quando uma mensagem de pressionamento de teclas é gerado para essa chave.No entanto, usando polimorfismo, o mesmo código com uma pequena mudança pode ser usado por várias teclas do teclado para desencadear ações específicas.

polimorfismo pode ser usado conceito claro de herança para fazer uma classe base e nela definir um nome de função CanEat (); em seguida, fazer outras classes que herdam a classe base Substituir essa função em cada classe em função principal criar o objeto de cada classe de converter cada objeto ao tipo base, então chamada de cada função, com referência base de código agora mesmo é obrigado a chamar a função de cada categoria, mas cada resultado Faça diferente.

mas como a sobrecarga é apenas as funções com o mesmo nome, mas parametre diferentes para estes dois conceitos são completamente diferentes.

qualquer confusão enviar mensagem privada.

 
sobrecarga é um polimorfismo estático ou ligação antecipada.
primeiros meios de ligação sabendo processo de execução em tempo de compilação.

 

Welcome to EDABoard.com

Sponsor

Back
Top