Vidéo: TUTO HTML & CSS - Créer un site internet de A à Z 2024
Les modèles de structure ont de nombreuses utilisations intéressantes, telles que la création d'un référentiel de données qui ne dépend pas d'un type particulier. L'exemple StructureTemplate montre ici une telle utilisation.
#include utilisant l'espace de noms std; struct template Volume {T hauteur; T largeur; T longueur; Volume () {height = 0; largeur = 0; longueur = 0;} T getvolume () {hauteur de retour * largeur * longueur;} Tvolvolume (T H, T W, T L) {hauteur = H; largeur = W; longueur = L; retour hauteur * largeur * longueur;}}; int main () {Volume premier; cout << "premier volume:" << premier. getvolume () << endl; premier. hauteur = 2; premier. largeur = 3; premier. longueur = 4; cout << "premier volume:" << premier. getvolume () << endl; Deuxième volume cout << "second volume:" << deuxième. getvolume (2.1, 3. 2, 4. 3) << endl; cout << "hauteur:" << seconde. hauteur << endl; cout << "largeur:" << seconde. largeur << endl; cout << "longueur:" << seconde. longueur << endl; return 0;}
Dans ce cas, la structure contient des valeurs de données de hauteur, de largeur et de longueur que le code peut utiliser pour déterminer le volume. La structure inclut un constructeur pour initialiser les valeurs, donc même si quelqu'un appelle getvolume () sans initialiser la structure, rien de mal n'arrivera.
La structure permet un accès indépendant de chacune des valeurs de données. Vous pouvez les définir ou les obtenir au besoin.
La fonction getvolume () est surchargée. Vous pouvez l'appeler avec ou sans valeurs d'entrée. Le code dans main () teste la structure en profondeur. Voici ce que vous voyez en sortie de cet exemple:
Premier volume: 0 Premier volume: 24 Deuxième volume: 28. 896 Hauteur: 2. 1 Largeur: 3. 2 Longueur: 4. 3
Vous pouvez utiliser des structures pour un autre but intéressant. La norme C ++ indique que vous ne pouvez pas créer un modèle typedef. Par exemple, le code suivant génère une erreur lorsque vous essayez de le compiler:
modèle typedef map MyDef;
Lorsque vous essayez de compiler ce code dans Code:: Blocks, vous voyez l'erreur suivante:
error: déclaration de modèle de 'typedef'
Cependant, vous pouvez définir un typedef dans un modèle de structure. Le code exemple StructureTemplate2 ici montre comment.
#include #include utilisant l'espace de noms std; modèle struct MyDef {typedef map Type;}; int main () {MyDef:: Mariages de type; mariages ["Tom"] = "Suzy"; mariages ["Harry"] = "Harriet"; Cout << Mariages ["Tom"] << endl; Cout << Mariages ["Harry"] << endl; return 0;}
Cet exemple surmonte les limitations C ++ en plaçant le typedef dans la structure, MyDef. La même structure peut contenir n'importe quel nombre d'entrées typedef.
Utiliser un typedef de cette manière facilite le travail avec map.Tout ce dont vous avez besoin est le type de valeur - le type de clé est déjà défini en tant que chaîne.