Nei linguaggi di alto livello, usiamo il sovraccarico per le funzioni, che viene usato in funzioni con funzioni diverse ma con lo stesso numero di parametri, e i template sono necessari per tipi diversi e lo stesso numero di parametri
Applet C++
- #include<iostream>
- using namespace std;
- template <class T>
- T max(T a,T b)
- {
- return a>b?a:b;
- }
- int main()
- {
- int a,b;cin>>a>>b;
- cout<<max(a,b);
- return 0;
- }
Copia codice Questo è un esempio semplice: la parola chiave template<class T> è l'inizio di una struttura template, così non dobbiamo scrivere ripetutamente più codici C++ con la stessa funzione quando cerchiamo il valore massimo Si noti che quando si chiama una funzione, il suo tipo viene automaticamente abbinato. Non serve che venga mostrata. Quanto sopra è l'uso più basilare, ma ci troveremo nelle seguenti situazioni
- #include<iostream>
- using namespace std;
- template <class T,class E>
- E max(T a,E b)
- {
- return a>b?a:b;
- }
- int main()
- {
- int a;float b;cin>>a>>b;
- cout<<max(a,b);
- return 0;
- }
Copia codice Cosa fare quando la nostra funzione ha bisogno di due tipi diversi, penso che tu possa capirlo dopo aver letto il codice sopra. Comunque, quello che hanno in comune è che i tipi vengono automaticamente abbinati. In effetti, abbiamo anche errori: se non riusciamo a corrispondere bene il tipo, cioè "la testa di toro non è giusta", allora l'abbinamento automatico del compilatore cambierà il tipo di parametro secondo le regole della conversione implicita del tipo, il che alla fine porterà alla perdita di accuratezza del risultato. Guarda il codice, puoi provare.
- #include<iostream>
- using namespace std;
- template <class T,class E>
- E max(T a,E b)
- {
- return a>b?a:b;
- }
- int main()
- {
- int a;float b;cin>>a>>b;
- cout<<max(a,b);
- return 0;
- }
Copia codice Il contenuto sopra non è molto difficile, ma ci sono anche molti ambiti che si possono esplorare, non so quali siano le vostre opinioni |
|