È possibile sovraccaricare le funzioni basate su modelli come si può normali funzioni. In questo modo , un nome funzione può gestire tipi di dati generici e un numero variabile di parametri , a condizione che tali parametri sono dello stesso tipo di dati . Il programmatore ha meno di pensare a quanto il compilatore gestisce il controllo del tipo e corrisponde a una chiamata di funzione a una firma di funzione . Modello di funzione sovraccarico aiuta ad aumentare l'estrazione di utilizzo della funzione . Cose che ti serviranno
Avanzata C + + Commercio conoscenza compilatore C + + con IDE come Visual Studio 2008
Mostra più istruzioni
1
Recensione come utilizzare modelli di funzione in C + + se il fondamento su modelli è traballante . È necessario conoscere i modelli prima di poter tentare questo tutorial .
2
utilizzare la parola chiave "classe" o " typename " nel template per specificare i tipi generici . Le due parole chiave hanno usi diversi. Ma ai fini di questa esercitazione, non importa quale parola chiave che si usa.
3
overload di una funzione su modelli tutte le volte che ci sono argomenti di input che si desidera è di elaborare . È necessario farlo nella dichiarazione , così come la definizione . L'esempio seguente mostra le tre dichiarazioni di una funzione , che può stampare 1-3 tipi di dati dello stesso tipo di output standard :
modello
void print (const T t1 ) ;
template
void print (const T t1 , t2 const T ) ;
template
void print (const T t1 , t2 T const , const T t3 ) ;
4
implementare gli algoritmi di sovraccarico come segue :
template
void print (const T t1 ) { cout
}
template
void print (const T t1 , t2 const T ) {
cout }
template
void print (const T t1 , t2 T const , const T t3 ) { cout
}
5
chiamata stampa ( ) da main ( ) sovraccaricandola da uno a tre parametri, utilizzando qualsiasi tipo di dati fondamentale . Si noti che è possibile chiamare la funzione con o senza parentesi angolari o di specifica tipo :
int main ( ) { print ( 4f ) ; //stampa un float
Stampa < > ( 23 , 37) ; //stampa due numeri interi print ( 'c' , 'o', ' m '); //stampa tre caratteri
}
< br >