Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 13940|Répondre: 0

[C++] Réfléchir aux modèles en C++

[Copié le lien]
Publié sur 04/10/2014 20:45:19 | | |
Dans les langages de haut niveau, on utilise la surcharge pour les fonctions, qui est utilisée dans des fonctions avec des fonctions différentes mais avec le même nombre de paramètres, et des modèles sont nécessaires pour différents types et le même nombre de paramètres
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. }
Code de copie

Voici un exemple simple : le mot-clé de type <classe T> est le début d’une structure de modèle, de sorte que nous n’avons pas besoin d’écrire plusieurs codes C++ avec la même fonction à répétition lors de la recherche de la valeur maximale
Notez que lors de l’appel d’une fonction, son type est automatiquement associé. Il n’est pas nécessaire de le montrer.
Ce qui précède est l’usage le plus basique, mais nous rencontrerons les situations suivantes

  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 de copie

Que faire quand notre fonction a besoin de deux types différents, je pense que vous pouvez le comprendre après avoir lu le code ci-dessus. Mais quoi qu’il en soit, ce qu’ils ont en commun, c’est que les types sont automatiquement correspondants.
En fait, nous avons aussi des erreurs : si nous ne pouvons pas bien faire correspondre le type, c’est-à-dire « la tête de taureau n’est pas bonne », alors l’appariement automatique du compilateur changera le type de paramètre selon les règles de conversion implicite de type, ce qui entraînera finalement une perte de précision du résultat.
Regarde le code, tu peux essayer.
  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 de copie
Le contenu ci-dessus n’est pas très difficile, mais il y a aussi beaucoup d’endroits à explorer, je ne connais pas vos avis





Précédent:c Mini programme écrit par Inline
Prochain:J’ai posté un logo créé pour mon forum et je l’ai montré à tout le monde !
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com