In hochrangigen Sprachen verwenden wir Overloading für Funktionen, was in Funktionen mit unterschiedlichen Funktionen, aber mit derselben Anzahl von Parametern verwendet wird, und Vorlagen werden für verschiedene Typen und dieselbe Anzahl von Parametern benötigt
C++-Applet
- #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;
- }
Code kopieren Dies ist ein einfaches Beispiel: Die Schlüsselwort-Template<Klasse T> ist der Anfang einer Vorlagenstruktur, sodass wir nicht mehrfach C++-Code mit derselben Funktion schreiben müssen, wenn wir nach dem maximalen Wert suchen Beachten Sie, dass beim Aufrufen einer Funktion ihr Typ automatisch abgestimmt wird. Es muss nicht gezeigt werden. Das oben Genannte ist die grundlegendste Verwendung, aber wir werden auf folgende Situationen stoßen
- #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;
- }
Code kopieren Was zu tun ist, wenn unsere Funktion zwei verschiedene Typen benötigt? Ich denke, das kann man nach dem obigen Code verstehen. Aber egal, was sie gemeinsam haben, ist, dass die Typen automatisch zugeordnet werden. Tatsächlich gibt es auch Fehler: Wenn wir den Typ nicht gut abgleichen können, also "der Stierkopf ist nicht richtig", verändert das automatische Matching des Compilers den Parametertyp gemäß den Regeln der impliziten Typumwandlung, was schließlich zum Verlust der Genauigkeit des Ergebnisses führt. Schau dir den Code an, du kannst es versuchen.
- #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;
- }
Code kopieren Der obige Inhalt ist nicht sehr schwierig, aber es gibt auch viele Bereiche, die erkundet werden können. Ich weiß nicht, was eure Meinungen sind |
|