next up previous contents
Next: Gabarito de classes Up: Gabaritos Previous: Gabaritos   Sumário

Gabaritos de funções

Considere a seguinte função que troca os valores de dois inteiros:

indentation

void swap (int& x, int& y) {
int tmp = x;
x = y;
y = tmp;
}
Considere agora a extensão desta rotina para fazer a troca de valores para floats, longs, ou objetos de quaisquer outros tipos -- a solução de repetir o código acima para todas é possível, mas certamente não deve ser a melhor.

Um gabarito de função permite que o computador faça esta repetição de código, e não o programador. O gabarito para a função swap seria definido como

indentation

template$<$class T$>$
void swap (T& x, T& y) {
T tmp = x;
x = y;
y =tmp;
}
Toda vez que a função swap for chamada com um dado par de tipos, o compilador C ++ irá até a definição acima e criará uma outra função gabarito como uma instância do gabarito de função acima. Funções gabaritos podem ser sobrepostas por outras definições para tipos específicos, se necessário.


next up previous contents
Next: Gabarito de classes Up: Gabaritos Previous: Gabaritos   Sumário
Ivan Luiz Marques Ricarte 2001-06-01