Structures en C++
Introduction aux Structures
En C++, une structure regroupe sous un même nom divers éléments de données. Ces éléments, également appelés membres de données, peuvent avoir des types différents.
Syntaxe de la Structure
Pour définir une structure, il faut suivre cette syntaxe :
- Utiliser le mot-clé
struct
au début. - Encadrer le contenu de la structure avec des accolades
{ }
. - Terminer par un point-virgule
;
.
Voici la syntaxe générale :
struct nom {
type_membre membre1;
type_membre membre2;
type_membre membre3;
};
Exemple de Structure
Prenons l'exemple d'une structure nommée programmeur
:
struct programmeur {
long id;
char nom[30];
char pseudo[15];
};
Cette structure contient trois membres : id
, nom
et pseudo
.
Déclaration et Initialisation des Variables de Structure
Dans C++11 et les versions ultérieures, il est possible d'initialiser les membres d'une structure directement dans la définition. Voici comment déclarer et initialiser une variable de structure :
#include
struct coordonnees {
int x;
int y;
};
int main() {
// Déclaration de la variable c1
struct coordonnees c1;
c1.x = 2;
c1.y = 2;
// Déclaration et initialisation de la variable c2
struct coordonnees c2 = {0, 1};
std::cout << "x1 = " << c1.x << ", y1 = " << c1.y << "\n"; // Pour c1
std::cout << "x2 = " << c2.x << ", y2 = " << c2.y << "\n"; // Pour c2
return 0;
}
Un Tableau de Structures
Tout comme les types de données primitifs, on peut créer un tableau de structures. Voici un exemple :
#include
struct coordonnees {
int x;
int y;
};
int main() {
struct coordonnees c[4];
int i;
for (i = 0; i < 4; i++)
std::cin >> c[i].x >> c[i].y;
for (i = 0; i < 4; i++) {
std::cout << "x" << i+1 << "=" << c[i].x << "\t";
std::cout << "y" << i+1 << "=" << c[i].y << "\n";
}
return 0;
}
Entrée :
1 0 1 2 1 1 0 2
Sortie :
x1 = 1 y1 = 0 x2 = 1 y2 = 2 x3 = 1 y3 = 1 x4 = 0 y4 = 2
Structures Imbriquées
Une variable d'une structure peut également être membre d'une autre structure. L'exemple ci-dessous montre une structure DOB
imbriquée dans une structure programmeur
:
struct programmeur {
long id;
char nom[30];
char pseudo[15];
struct DOB {
int mois;
int jour;
int an;
} d;
};
struct programmeur bjarne;
// Initialisation d'un membre de la structure DOB
bjarne.d.jour = 10;
Pour accéder aux membres d'une structure imbriquée, on utilise la notation var1.var2.membre1
.