Nwlapcug.com


Come utilizzare il modello di funzione sovraccarico in C++

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

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 >

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);

4

Implementare gli algoritmi di sovraccarico come segue:

modello < classe T >

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;

}

5

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 () {

Print(4.f); stampe di tipo float

<> Stampa (23, 37); stampe due interi

Stampa < char > ('c', 'o ', sto'); stampe tre caratteri

}

Consigli & Avvertenze

  • Si noti che è possibile utilizzare la parola chiave "typename" al posto di "classe" nel passaggio 3.