Contenu du cours
Modèles C++
Modèles C++
Créer Votre Premier Modèle en C++
Voyons ce qui se passe lorsque nous spécifions différents types pour le modèle. Pour cela, nous utiliserons typeid().name()
, qui montre simplement le type de données de la variable. Regardez l'exemple ci-dessous :
main
#include <iostream> int main() { int x = 5; std::cout << typeid(x).name(); }
Remarque
Le fragment de code ci-dessus affichera simplement dans la console
i
, symbolisant quex
est unint
.
Créons un modèle en utilisant <typename Type>
et passons Type
comme paramètre à la fonction au lieu de spécifier une variable spécifique.
main
#include <iostream> template<typename Type> void check_type() { std::cout << typeid(Type).name() << std::endl; } int main() { // Try to change `int` to different type check_type<int>(); }
Comme vous pouvez le voir, lorsque vous appelez la fonction modèle et spécifiez un type entre les crochets, le paramètre typename
reçoit ce type. Le nom du paramètre de modèle devient essentiellement un alias pour ce type.
Swipe to start coding
- Transformez la fonction
swap
en une fonction template :- définissez template en utilisant le mot-clé
template
; - ajoutez la liste des paramètres de template ;
- ajoutez un paramètre pour le template.
- définissez template en utilisant le mot-clé
- Changez tous les types (
int
) entypename
à partir du paramètre de template. - Appelez la fonction template et passez
char
comme type, en échangeant deux variables dans la fonctionmain
.
Une fois que vous avez terminé cette tâche, cliquez sur le bouton ci-dessous le code pour vérifier votre solution.
Solution
solution
Merci pour vos commentaires !
Créer Votre Premier Modèle en C++
Voyons ce qui se passe lorsque nous spécifions différents types pour le modèle. Pour cela, nous utiliserons typeid().name()
, qui montre simplement le type de données de la variable. Regardez l'exemple ci-dessous :
main
#include <iostream> int main() { int x = 5; std::cout << typeid(x).name(); }
Remarque
Le fragment de code ci-dessus affichera simplement dans la console
i
, symbolisant quex
est unint
.
Créons un modèle en utilisant <typename Type>
et passons Type
comme paramètre à la fonction au lieu de spécifier une variable spécifique.
main
#include <iostream> template<typename Type> void check_type() { std::cout << typeid(Type).name() << std::endl; } int main() { // Try to change `int` to different type check_type<int>(); }
Comme vous pouvez le voir, lorsque vous appelez la fonction modèle et spécifiez un type entre les crochets, le paramètre typename
reçoit ce type. Le nom du paramètre de modèle devient essentiellement un alias pour ce type.
Swipe to start coding
- Transformez la fonction
swap
en une fonction template :- définissez template en utilisant le mot-clé
template
; - ajoutez la liste des paramètres de template ;
- ajoutez un paramètre pour le template.
- définissez template en utilisant le mot-clé
- Changez tous les types (
int
) entypename
à partir du paramètre de template. - Appelez la fonction template et passez
char
comme type, en échangeant deux variables dans la fonctionmain
.
Une fois que vous avez terminé cette tâche, cliquez sur le bouton ci-dessous le code pour vérifier votre solution.
Solution
solution
Merci pour vos commentaires !