overload di una funzione che moltiplica i numeri di tipo int , float e double :
int Mult ( int a , int b ) {
ritorno (a * b); }
galleggiante Mult ( float a , float b ) {
ritorno ( un * b); }
doppio Mult ( double a , double b ) {
ritorno (a * b); }
2
fare la stessa cosa che fase 1 non , utilizzando + modelli di funzione C + + :
template
Mult T ( T a, T b ) {
ritorno (a * b); }
3
Confronta punto 2 al punto 1 . La riga in più di codice inserito sopra la definizione della funzione al punto 2 sembra un buon compromesso per la ripetizione del corpo della funzione due o più volte .
4
Torna al codice della Fase 2 . T è il typename . La parola chiave class significa che T può assumere qualsiasi identità . Si tratta di un tipo generico che il compilatore interpreta al volo a seconda quale parametro l' utente passa ad esso . Quindi T può essere un numero intero , un float , una doppia o una classe che ha l'operatore di moltiplicazione definito , altrimenti l' operazione di moltiplicazione resta indefinito
5
testare a fondo la firma della funzione che utilizza i modelli . . Eseguire test con tutti i tipi di dati attesi per garantire che non si ottengono risultati imprevisti .
Programmazione © www.354353.com