C++ Structure avec exemple
โก Rรฉsumรฉ intelligent
Structure dans C++ est un type de donnรฉes dรฉfini par l'utilisateur qui regroupe des รฉlรฉments de diffรฉrents types de donnรฉes sous un seul nom, permettant ร une variable de contenir ensemble des valeurs liรฉes telles que le nom d'une personne, sa citoyennetรฉ et son รขge.

Qu'est-ce qu'une structure dans C++?
Une STRUCT est une C++ structure de donnรฉes qui peut รชtre utilisรฉe pour stocker ensemble des รฉlรฉments de diffรฉrents types de donnรฉes. Dans C++Une structure est un type de donnรฉes dรฉfini par l'utilisateur. La structure crรฉe un type de donnรฉes pour le groupe.ping รฉlรฉments de types de donnรฉes diffรฉrents sous un seul type de donnรฉes.
Par exemple :
Supposons que vous ayez besoin de stocker des informations sur une personne, son nom, sa citoyennetรฉ et son รขge. Vous pouvez crรฉer des variables telles que le nom, la citoyennetรฉ et l'รขge pour stocker les donnรฉes sรฉparรฉment.
Cependant, vous pourriez avoir besoin de stocker des informations concernant de nombreuses personnes ร l'avenir. Cela implique la crรฉation de variables pour chaque individu, par exemple : nom1, citoyennetรฉ1, รขge1, etc. Pour รฉviter cela, il est prรฉfรฉrable de crรฉer une structure.
Quand utiliser une Structure ?
Voici quelques raisons d'utiliser la structure dans C++.
- Utilisez une structure lorsque vous devez stocker des รฉlรฉments de diffรฉrents types de donnรฉes sous un seul type de donnรฉes.
- C++ les structures sont un type valeur plutรดt quโun type rรฉfรฉrence. Utilisez une structure si vous n'avez pas l'intention de modifier vos donnรฉes aprรจs la crรฉation.
C++ Initialisation de la structure
Crรฉer un C++ structure, nous utilisons le mot-clรฉ struct, suivi d'un identifiant. L'identifiant devient le nom de la structure. Voici la syntaxe de crรฉation d'un C++ structure :
syntaxe:
struct struct_name { // struct members }
Dans la syntaxe ci-dessus, nous avons utilisรฉ le mot-clรฉ struct. Le struct_name est le nom de la structure.
Les membres de la structure sont ajoutรฉs entre accolades. Ces membres appartiennent probablement ร des types de donnรฉes diffรฉrents.
Par exemple :
struct Person { char name[30]; int citizenship; int age; }
Dans lโexemple ci-dessus, Person est une structure composรฉe de trois membres. Les membres incluent le nom, la citoyennetรฉ et lโรขge. Un membre est de type de donnรฉes char, tandis que les 2 autres sont des entiers lorsqu'une structure est crรฉรฉe, la mรฉmoire n'est pas allouรฉe. La mรฉmoire n'est allouรฉe qu'aprรจs l'ajout d'une variable ร la structure.
Crรฉation d'instances structurelles
Dans l'exemple ci-dessus, nous avons crรฉรฉ une structure nommรฉe Person. Nous pouvons crรฉer une variable struct comme suit :
Person p;
Le p est une variable structurรฉe de type Person. Nous pouvons utiliser cette variable pour accรฉder aux membres de la structure.
Accรฉder aux membres de la structure
Pour accรฉder aux membres de la structure, nous utilisons l'instance de la structure et l'opรฉrateur point (.). Par exemple, pour accรฉder ร l'รขge des membres de struct Person :
p.age = 27;
Nous avons accรฉdรฉ ร l'รขge des membres de struct Person en utilisant l'instance de struct, p. Nous avons alors fixรฉ la valeur de l'รขge du membre ร 27 ans.
Exemple 1:
#include <iostream> using namespace std; struct Person { int citizenship; int age; }; int main(void) { struct Person p; p.citizenship = 1; p.age = 27; cout << "Person citizenship: " << p.citizenship << endl; cout << "Person age: " << p.age << endl; return 0; }
Sortie :
Voici une capture d'รฉcran du code :
Code Explication:
- Incluez le fichier d'en-tรชte iostream dans notre programme pour utiliser les fonctions qui y sont dรฉfinies.
- Incluez l'espace de noms std pour utiliser ses classes sans l'appeler.
- Crรฉez une structure nommรฉe Person.
- Le dรฉbut du corps de la structure.
- Crรฉez un membre de structure nommรฉ citoyennetรฉ de type entier.
- Crรฉez un membre de structure nommรฉ age de type entier.
- Fin du corps de la structure.
- Appelez la fonction main(). La logique du programme doit รชtre ajoutรฉe dans le corps de cette fonction.
- Crรฉez une instance de la structure Person et donnez-lui le nom p.
- Dรฉfinissez la valeur de la citoyennetรฉ du membre struct sur 1.
- Dรฉfinissez la valeur de l'รขge du membre de la structure sur 27.
- Imprimez la valeur de la citoyennetรฉ du membre de la structure sur la console ร cรดtรฉ d'un autre texte.
- Imprimez la valeur de l'รขge du membre de la structure sur la console ร cรดtรฉ d'un autre texte.
- Le programme doit renvoyer une valeur s'il s'exรฉcute correctement.
- Fin de la fonction main().
Pointeurs vers la structure
Il est possible de crรฉer un pointeur qui pointe vers une structure. C'est similaire ร la faรงon dont sont crรฉรฉs les pointeurs pointant vers des types de donnรฉes natifs comme int, float, double, etc. Notez qu'un pointeur dans C++ stockera un emplacement mรฉmoire.
Exemple 2:
#include <iostream> using namespace std; struct Length { int meters; float centimeters; }; int main() { Length *ptr, l; ptr = &l; cout << "Enter meters: "; cin >> (*ptr).meters; cout << "Enter centimeters: "; cin >> (*ptr).centimeters; cout << "Length = " << (*ptr).meters << " meters " << (*ptr).centimeters << " centimeters"; return 0; }
Sortie :
Voici une capture d'รฉcran du code :
Code Explication:
- Incluez le fichier d'en-tรชte iostream dans notre programme afin d'utiliser ses fonctions.
- Incluez l'espace de noms std dans notre programme pour utiliser ses classes sans l'appeler.
- Crรฉez une structure nommรฉe Longueur.
- Dรฉbut du corps de la structure Longueur.
- Crรฉez un membre de structure nommรฉ mรจtres de type de donnรฉes entier.
- Crรฉez un membre de structure nommรฉ centimรจtres de type entier.
- Fin du corps de la structure Longueur.
- Appelez la fonction main().
- Dรฉbut du corps de la fonction main().
- Crรฉez une variable de pointeur *ptr et une variable normale l de type Longueur.
- Stocker l'adresse de la variable l dans notre variable de pointeur.
- Afficher un message sur la console demandant ร l'utilisateur de saisir la valeur des compteurs variables.
- Lire la valeur saisie par l'utilisateur via le clavier. La fonction membre mรจtres est ici accessible ร lโaide de la variable pointeur.
- Afficher un message sur la console demandant ร l'utilisateur de saisir la valeur des centimรจtres variables.
- Lire la valeur saisie par l'utilisateur via le clavier. La fonction membre centimรจtres est ici accessible ร lโaide de la variable pointeur.
- Affichez les valeurs lues par l'utilisateur sur la console ร cรดtรฉ d'un autre texte.
- Le programme doit renvoyer une valeur en cas d'exรฉcution rรฉussie.
- Fin du corps de la fonction main().
Structure comme argument de fonction
Vous pouvez transmettre une structure ร une fonction en tant qu'argument. Cela se fait de la mรชme maniรจre que pour passer un argument normal. Les variables struct peuvent รฉgalement รชtre transmises ร une fonction. Un bon exemple est lorsque vous devez afficher les valeurs des membres de la structure. Dรฉmontrons ceci :
Exemple 3:
#include<iostream> using namespace std; struct Person { int citizenship; int age; }; void func(struct Person p); int main() { struct Person p; p.citizenship = 1; p.age = 27; func(p); return 0; } void func(struct Person p) { cout << " Person citizenship: " << p.citizenship<<endl; cout << " Person age: " << p.age; }
Sortie :
Voici une capture d'รฉcran du code :
Code Explication:
- Incluez le fichier d'en-tรชte iostream dans notre fichier. Nous utiliserons alors ses fonctions sans obtenir dโerreurs.
- Incluez l'espace de noms std dans notre programme pour utiliser ses classes. Nous n'aurons pas besoin d'appeler l'espace de noms pour utiliser ses classes.
- Crรฉez une structure nommรฉe Person.
- Dรฉbut du corps de la structure Person.
- Crรฉez un membre de struct Person. Le membre est nommรฉ citoyennetรฉ et est de type entier.
- Crรฉez un membre de struct Person. Le membre est nommรฉ age et est de type entier.
- Fin du corps de struct Person.
- Crรฉez une fonction qui prend l'instance de struct Person, p, comme argument.
- Appelez la fonction principale. Le { marque le dรฉbut du corps de la fonction main().
- Crรฉez une instance de struct Person et donnez-lui le nom p.
- Accรฉdez ร la variable membre de la structure citoyennetรฉ en utilisant l'instance de la structure, p, et en lui attribuant la valeur 1.
- Accรฉdez ร la variable membre de la structure age en utilisant l'instance de la structure, p, et en lui attribuant la valeur 27.
- Appelez la fonction et passez-lui l'instance de la structure Person, p, comme argument.
- La fonction doit renvoyer une valeur en cas d'exรฉcution rรฉussie.
- Fin du corps de la fonction main().
- Crรฉez le corps de la fonction.
- Le dรฉbut du corps de la fonction.
- Accรฉdez ร la valeur de citoyennetรฉ du membre struct et imprimez-la sur la console avec un autre texte.
- Accรฉdez ร la valeur d'รขge du membre struct et imprimez-la sur la console avec un autre texte.
- Fin du corps de fonction.
Limitation d'un C++ structure
Voici les limites des structures :
- Le type de donnรฉes struct ne peut pas รชtre traitรฉ comme des types de donnรฉes intรฉgrรฉs.
- Operators comme + -, et d'autres ne peuvent pas รชtre utilisรฉs sur variables de structure.
- Les structures ne prennent pas en charge le masquage des donnรฉes. Les membres d'une structure sont accessibles par n'importe quelle fonction quelle que soit sa portรฉe.
- Les membres statiques ne peuvent pas รชtre dรฉclarรฉs ร lโintรฉrieur du corps de la structure.
- Les constructeurs ne peuvent pas รชtre crรฉรฉs ร l'intรฉrieur d'une structure.



