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
He7d3r.bot (discussão | contribs)
Atualizando a categoria do livro, com AutoCat (detalhes). utilizando AWB
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>
aquiAqui criamos uma template para uma função que troca os valores, e essa função pode ser usada quer tendo ints, doubles ou chars. nós utilizamos o X como data type.
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>
oO que se torna bem parecido com o modelo utilizado anteriormente
 
 
 
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