Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 13940|Antwort: 0

[C++] Ich denke über Vorlagen in C++ nach

[Link kopieren]
Veröffentlicht am 04.10.2014 20:45:19 | | |
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

  1. #include<iostream>
  2. using namespace std;

  3. template <class T>
  4. T max(T a,T b)
  5. {
  6. return         a>b?a:b;
  7. }

  8. int main()
  9. {
  10. int a,b;cin>>a>>b;
  11. cout<<max(a,b);
  12. return 0;
  13. }
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

  1. #include<iostream>
  2. using namespace std;

  3. template <class T,class E>
  4. E max(T a,E b)
  5. {
  6. return         a>b?a:b;
  7. }

  8. int main()
  9. {
  10. int a;float b;cin>>a>>b;
  11. cout<<max(a,b);
  12. return 0;
  13. }
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.
  1. #include<iostream>
  2. using namespace std;

  3. template <class T,class E>
  4. E max(T a,E b)
  5. {
  6. return         a>b?a:b;
  7. }

  8. int main()
  9. {
  10. int a;float b;cin>>a>>b;
  11. cout<<max(a,b);
  12. return 0;
  13. }
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





Vorhergehend:c Mini-Programm geschrieben von Inline
Nächster:Ich habe ein Logo für mein Forum gepostet und es allen gezeigt!
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com