Polimorfismo de C

    “Polimorfismo: é a capacidade de criar código capaz de operar (ou pelos menos, aparentar operar) sobre valores de tipos distintos.”

 

    Na Linguagem C, só há Polimorfismo do tipo Adhoc:

    Ocorre quando um mesmo símbolo ou identificador é associado a diferentes trechos de código que atuam sobre diferentes tipos. Há dois tipos de Adhoc:

  • Coerção: Conversão implícita de tipos, ou seja, quem faz a conversão é a própria linguagem, assim se tem um Aumento à redigibilidade, porém sacrifica a confiabilidade. A Coerção pode ser por 3 tipos:
  1. Ampliação (operação segura): tipo de maior conjunto := tipo de menor conjunto.

double = int >> double x = 1;

  1. Estreitamento (operação Não segura): tipo de menor conjunto  :=   tipo de maior conjunto.

int = double >> int x = 3.14;

  1. Nem por Ampliação e Nem por Estreitamento:

int (todos os valores)  =  unsigned int  (apenas os valores absolutos);

  • Sobrecarga: Ocorre quando um mesmo operador pode ser usado para designar duas ou mais operações distintas. Em C só há  sobrecarga nos operadores da biblioteca padrão.

 

OBS.: Existem mais dois tipos de Polimorfismos do tipo Universal, o Paramétrico e o de Inclusão, contudo a Linguagem C não dá suporte!

 

Fontes:

 07_Polimorfismo.pdf (1,1 MB)

https://pt.wikipedia.org/wiki/Polimorfismo