Structure C++ avec exemple
Qu'est-ce qu'une structure en C++ ?
Une STRUCTURE est une structure de données C++ qui peut être utilisée pour stocker ensemble des éléments de différents types de données. En C++, une structure est un type de données défini par l'utilisateur. La structure crée un type de données pour regrouper des éléments de différents types de données sous un seul type de données.
Par exemple :
Supposons que vous ayez besoin de stocker des informations sur quelqu'un, son nom, sa nationalité 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 devrez peut-être stocker des informations sur de nombreuses personnes à l'avenir. Cela signifie que des variables pour différents individus seront créées. Par exemple, nom1, citoyenneté1, âge1 etc. Pour éviter cela, il est préférable de créer une structure.
Dans ce didacticiel C++, vous apprendrez :
- Qu'est-ce qu'une structure en C++ ?
- Quand utiliser une structure ?
- Initialisation de structure C++
- Création d'instances de structure
- Accéder aux membres de structure
- Pointeurs vers la structure
- Structure comme argument de fonction
- Limitation d'une structure C++
Quand utiliser une Structure ?
Voici quelques raisons d'utiliser la structure en 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.
- Les structures C++ 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 leur création.
Initialisation de la structure C++
Pour créer une structure C++, 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'une structure C++ :
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 à différents types de données.
Par exemple :
struct Person { char name[30]; int citizenship; int age; }
Dans l'exemple ci-dessus, Person est une structure à trois membres. Les membres comprennent 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éer des instances de structure
Dans l'exemple ci-dessus, nous avons créé une structure nommée Person. Nous pouvons créer une variable de structure comme suit :
Person p;
Le p est une variable struct de type Person. Nous pouvons utiliser cette variable pour accéder aux membres de la structure.
Accéder aux membres de 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 du membre de la structure Person :
p.age = 27;
Nous avons accédé à l'âge du membre de la structure Person en utilisant l'instance de la structure, 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 :
Explication du code :
- 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 nommez-la p.
- Définissez la valeur de la citoyenneté du membre de la structure 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 les pointeurs pointant vers des types de données natifs comme int, float, double, etc. sont créés. Notez qu'un pointeur en 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 :
Explication du code :
- Inclure 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 Length.
- Début du corps de la structure Length.
- 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 Length.
- 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.
- Stockez 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 entrée par l'utilisateur via le clavier. La fonction membre mètres est accessible ici à l'aide de la variable de pointeur.
- Afficher un message sur la console, demandant à l'utilisateur d'entrer la valeur des centimètres variables.
- Lire la valeur entrée par l'utilisateur via le clavier. La fonction membre centimètres est ici accessible à l'aide de la variable pointeur.
- Afficher 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 passer une structure à une fonction en tant qu'argument. Cela se fait de la même manière que le passage d'un argument normal. Les variables de structure peuvent également être passées à 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 :
Explication du code :
- Inclure le fichier d'en-tête iostream dans notre fichier. Nous utiliserons alors ses fonctions sans erreur.
- 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éer un membre de la structure Person. Le membre est nommé citoyenneté et est de type entier.
- Créer un membre de la structure Person. Le membre est nommé age et est de type entier.
- Fin du corps de la structure 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 citoyenneté de la variable membre de la structure en utilisant l'instance de la structure, p, et en lui attribuant la valeur 1.
- Accédez à l'âge de la variable membre de la structure en utilisant l'instance de la structure, p, et en lui attribuant la valeur 27.
- Appelez la fonction et transmettez-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 de la structure et imprimez-la sur la console avec d'autres textes.
- Accédez à la valeur d'âge du membre de la structure et imprimez-la sur la console avec d'autres textes.
- Fin du corps de la fonction.
Limitation d'une structure C++
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.
- Les opérateurs comme + - et d'autres ne peuvent pas être utilisés sur des 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.
Résumé :
- Une structure est une structure de données qui stocke des éléments de données appartenant à différents types.
- Alors qu'un tableau stocke des éléments de données d'un type similaire, une structure stocke des éléments de données de types différents.
- Une structure doit être utilisée lorsque les éléments de données ne sont pas censés changer de valeur.
- Les membres d'une structure sont accessibles à l'aide de l'opérateur point (.).
- Nous devons créer une instance de la structure.
- Pour créer une structure C++, nous utilisons le mot-clé struct.
- Les pointeurs pointant vers une structure sont créés de la même manière que les pointeurs pointant vers des types normaux.
- Une structure peut être transmise en tant qu'argument à une fonction de la même manière que les fonctions ordinaires sont transmises.
Langue C
- Boucle do…while C++ avec exemples
- Instruction C++ Switch Case avec EXAMPLE
- Allocation dynamique C++ de tableaux avec exemple
- Pointeurs C++ avec exemples
- Type de données Char C++ avec exemples
- Surcharge d'opérateur C++ avec des exemples
- std ::list en C++ avec exemple
- Fonctions C++ avec exemples de programmes
- Différence entre structure et classe :expliquée avec un exemple C++