Programar em C++/Templates: diferenças entre revisões
[edição não verificada] | [edição não verificada] |
Conteúdo apagado Conteúdo adicionado
Sem resumo de edição |
|||
Linha 8:
== funções genéricas ==
<source lang="cpp">
template <class Ttype> ret-type func-name(parameter list)
{
// body of function
}
</source>
vamos dar o exemplo
<source code="cpp">
// Function template example.
#include <iostream>
Linha 42 ⟶ 43:
return 0;
}
</source>
neste caso temos swapargs() como uma função genérica.
o compilador automaticamente cria 3 versões para a função swapargs(). portanto os templates não são bem funções que funcionam para as várias tipologias mas antes os templates permitem poupar escrita ao programador para não ter de especificar cada tipologia.
Linha 51 ⟶ 53:
há quem prefira ter a declaração do template da seguinte forma
<source lang="cpp">
template <class X>
void swapargs(X &a, X &b)// This is a function template.
Linha 59 ⟶ 62:
b = temp;
}
</source>
uma função com dois tipos genéricos.
<source lang="cpp">
#include <iostream>
using namespace std;
Linha 78 ⟶ 83:
return 0;
}
</source>
repare que temos duas tipologias de dados diferentes na mesma função
|