Programar em C++/Templates: diferenças entre revisões

[edição verificada][edição verificada]
Conteúdo apagado Conteúdo adicionado
Sem resumo de edição
Abacaxi (discussão | contribs)
Sem resumo de edição
Linha 1:
{{reciclagem}}
 
Os templates permitem a criação de código re-usadoreusado, usando templates é possível criar funções e classes genéricas. Assim ao tipologiatipo de dados usadas pelas funções são parâmetros. Podemos criar um template para soma, e depois enviamos que tipo de dados queremos somar, podemos até utilizar a sobrecarga de operadores para tal fim.
 
Os templates permitem a criação de código re-usado, usando templates é possível criar funções e classes genéricas. Assim a tipologia de dados usadas pelas funções são parâmetros. Podemos criar um template para soma, e depois enviamos que tipo de dados queremos somar, podemos até utilizar a sobrecarga de operadores para tal fim.
 
 
 
 
== funções genéricas ==
Linha 46 ⟶ 42:
Aqui 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.
oO 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áriasvários tipologiastipos, mas antes os templates permitem poupar escrita ao programador para não ter de especificar cada tipologiatipo.
 
'''template function ou genéricgeneric function''' (é uma definição de uma função precedida pela statement template
 
'''especialização''' == é quando o compilador cria a versão especifica da função. também é chamada de generated function. o acto de gerar a função é referido como instantiating.
Linha 63 ⟶ 59:
}
</source>
O que se torna bem parecido com o modelo utilizado anteriormente
 
 
O que se torna bem parecido com o modelo utilizado anteriormente.
 
umaUma função com dois tipos genéricos.:
<source lang="cpp">
#include <iostream>
Linha 85 ⟶ 80:
</source>
 
repareRepare que temos duasdois tipologiastipos de dados diferentes na mesma função.
 
== Explicitly overloading a generic function ==