Possibile eseguire l'overload di funzioni basato su modelli come è possibile che le funzioni normali. In questo modo, un nome di funzione può gestire tipi di dati generici e un numero variabile di parametri, purché tali parametri siano dello stesso tipo di dati. Il programmatore ha meno a che pensare poiché il compilatore gestisce il tipo di controllo e corrisponde a una chiamata di funzione a firma di una funzione. Overload di funzioni modello aiuta ad aumentare l'astrazione della funzione d'uso.
Istruzioni
1
Scrivi una recensione su come utilizzare modelli di funzione in C++, se il vostro fondamento su modelli è traballante. Prima si può tentare questo tutorial, è necessario conoscere modelli.
2
È possibile utilizzare la parola chiave "classe" o "typename" nel modello per specificare i tipi generici. Le due parole chiave hanno uso differente. Ma ai fini di questa esercitazione, non importa quali parole chiave che si utilizza.
3
void Print (const T t1); modello < classe T > void Print (const T t1, const T t2); modello < classe T > void Print (const T t1, const T t2, const T t3);
Sovraccarico di una funzione basata su modelli come tutte le volte che ci sono argomenti di input che si desidera elaborare. È necessario farlo in dichiarazione, nonché la definizione. L'esempio sottostante mostra le tre dichiarazioni di una funzione, che può stampare uno a tre tipi di dati dello stesso tipo di output standard:
modello < classe T >
4
void Print (const T t1) { cout << t1 << endl; } modello < classe T > void Print (const T t1, const T t2) { cout << t1 << t2 << endl; } modello < classe T > void Print (const T t1, const T t2, const T t3) { cout << t1 << t2 << t3 << endl; }
Implementare gli algoritmi di sovraccarico come segue:
modello < classe T >
5
Print(4.f); stampe di tipo float <> Stampa (23, 37); stampe due interi Stampa < char > ('c', 'o ', sto'); stampe tre caratteri }
Print () chiamata da Main () l'overload con parametri di uno a tre e utilizzando qualsiasi tipo di dati fondamentale. Si noti che è possibile chiamare la funzione con o senza parentesi angolari o digitare Specifica:
int Main () {
Consigli & Avvertenze
- Si noti che è possibile utilizzare la parola chiave "typename" al posto di "classe" nel passaggio 3.