Suponha que você quer fazer uma função, Mult , que multiplica dois números. Você pode escrever uma versão separada para cada tipo de dados , que é a sobrecarga de método , ou você pode usar modelos de função C + + e ter uma assinatura da função , em vez de três. Modelos de função C + + automatizar tipo entrega , dar ao usuário da biblioteca poder mais expressivo e reduzir o custo de manutenção do código . Coisas que você precisa
Advanced +
compilador C + C + + com IDE , como
do Bloodshed
Visualizar Mais instruções
1
Sobrecarga uma função que multiplica o número de tipo int, float e double :
int Mult ( int a , int b ) {
voltar (a * b); }
flutuar Mult ( float a , float b ) {
voltar (a * b); }
dupla Mult (double a , double b ) { return
(a * b); }
2
Faça a mesma coisa que Passo 1 faz, usando modelos de função C + +: modelo dos convites
T Mult (T a , T b ) {
voltar (a * b); }
3
Compare Passo 2 para o Passo 1. A linha extra de código inserida acima da definição da função no Passo 2 parece ser uma boa troca para repetir o corpo da função duas ou mais vezes .
4
Voltar ao código do Passo 2. T é o typename . A palavra-chave classe T significa que pode assumir qualquer identidade. É um tipo genérico que o compilador interpreta na mosca o que , dependendo do parâmetro o usuário passa para ele. Então T pode ser um inteiro , um float, um casal ou uma classe que tem o operador multiplicar definido , caso contrário a operação de multiplicação permanece indefinida
5
Teste completamente a assinatura da função que usa modelos. . Realizar testes com todos os tipos de dados esperados para garantir que você não obter resultados inesperados.