Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 13940|Risposta: 0

[C++] Pensare ai template in C++

[Copiato link]
Pubblicato su 04/10/2014 20:45:19 | | |
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++

  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. }
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

  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. }
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.
  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. }
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





Precedente:c Mini programma scritto da Inline
Prossimo:Ho pubblicato un logo creato per il mio forum e l'ho mostrato a tutti!
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com