În limbajele de nivel înalt, folosim supraîncărcarea pentru funcții, care este folosită în funcții cu funcții diferite, dar cu același număr de parametri, iar șabloanele sunt necesare pentru tipuri diferite și același număr de 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;
- }
Cod de copiere Acesta este un exemplu simplu: cuvântul cheie template<class T> este începutul unei structuri de șabloane, astfel încât să nu fie nevoie să scriem mai multe coduri C++ cu aceeași funcție în mod repetat atunci când căutăm valoarea maximă Rețineți că atunci când apelați o funcție, tipul acesteia este corelat automat. Nu trebuie să fie arătat. Cea de mai sus este cea mai de bază utilizare, dar vom întâlni următoarele situații
- #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;
- }
Cod de copiere Ce să faci când funcția noastră are nevoie de două tipuri diferite, cred că poți înțelege după ce ai citit codul de mai sus. Dar oricum, ceea ce au în comun este că tipurile sunt potrivite automat. De fapt, avem și greșeli, dacă nu potrivim bine tipul, adică "capul de taur nu este corect", atunci potrivirea automată a compilatorului va schimba tipul parametrului conform regulilor conversiei implicite a tipului, ceea ce va duce în cele din urmă la pierderea acurateței rezultatului. Uită-te la cod, poți încerca.
- #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;
- }
Cod de copiere Conținutul de mai sus nu este foarte dificil, dar există și multe locuri care pot fi explorate, nu știu care sunt părerile voastre |
|