Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Templates avec Paramètres de Type par Défaut | Templates de classes
Templates C++

Templates avec Paramètres de Type par Défaut

Glissez pour afficher le menu

Il est possible de spécifier un type de paramètre par défaut pour un modèle de classe et, à partir de C++11, des arguments de modèle par défaut peuvent également être utilisés dans les modèles de fonctions. Pour définir un type par défaut, il suffit d'écrire le type souhaité après le signe égal pour le paramètre du modèle.

main.cpp

main.cpp

123456789101112131415
#include <iostream> template <typename T = int> // `int` will be used as a default type class Box { T value; // Stores the value of type `T` public: Box(T value) : value(value) { std::cout << this->value; } }; int main() { // Type not specified // VV Box<> intBox(25.5); }

Lorsque vous exécutez le code ci-dessus, le résultat sera 25 au lieu de 25.5. Cela s'explique par le fait que le type par défaut pour la classe Box est défini sur int, ce qui tronque la partie décimale de la valeur.

Note
Remarque

De la même manière que pour les arguments par défaut des fonctions, si un paramètre de template possède un argument par défaut, alors tous les paramètres de template qui le suivent doivent également avoir des arguments par défaut.

En plus des paramètres de type par défaut, C++ autorise les paramètres de template non typés avec des valeurs par défaut. Les paramètres non typés peuvent être des types entiers, des pointeurs ou des références. Pour spécifier un paramètre non typé par défaut, il suffit d’assigner une valeur par défaut après le paramètre.

array.h

array.h

123456
// `int` and `10` are default parameters template <typename T = int, size_t Size = 10> struct Array { T arr[Size]; // Array with a fixed size of `Size` }

Les paramètres de modèle par défaut simplifient le code, réduisent la redondance et permettent aux modèles de gérer les cas d'utilisation courants avec un minimum d'effort tout en autorisant la personnalisation si nécessaire.

question mark

Lorsqu'un paramètre de modèle possède une valeur par défaut, laquelle des affirmations suivantes est vraie ?

Sélectionnez toutes les réponses correctes

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 3

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Section 3. Chapitre 3
some-alt