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:
- Ampliação (operação segura): tipo de maior conjunto := tipo de menor conjunto.
double = int >> double x = 1;
- Estreitamento (operação Não segura): tipo de menor conjunto := tipo de maior conjunto.
int = double >> int x = 3.14;
- 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: