Previous Contents Next

13   Regroupement de données - struct

La première étape consiste à définir des types correspondant à des regroupements de données, des n-uplets. Par exemple, une fraction peut être vue comme une paire d'entiers : un numérateur et un dénominateur. Nous pouvons définir un type lui correspondant de la manière suivante :
struct fraction {
 int num;
 int den;
};
Il devient alors possible de définir des variables de type fraction par l'instruction habituelle :
fraction f, g;
La variable f est une structure de deux entiers, on parle de champs: un champ num et un champ den. On peut accéder aux champs avec l'opérateur ``.'' : f.num ou f.den. Ces deux champs peuvent s'utiliser comme n'importe quelle variable entière :
//=========================
f.num = 1;
f.den = 3;
cout << f.num << "/" << f.den;
//=========================
On peut évidemment définir d'autres champs :
struct envrac {
 int val;
 double d1, d2;
 bool b;
};
Une variable e de type envrac contient un champ entier (e.val), deux champs flottants (e.d1 et e.d2) et un champ booléen (e.b).

Une expression ``g = f'' où f et g sont d'un type struct, correspond à l'affectation ``champ à champ'' : la valeur de chaque champ de f est recopiée dans le champ correspondant de g. Ce mécanisme est aussi appliqué lorsque l'on utilise des objets de type struct en paramètres de fonction ou lorsque on utilise ce type comme résultat d'une fonction.


Previous Contents Next