C ++ Struct avec exemple

Table des matières:

Anonim

Qu'est-ce qu'un Struct en C ++?

Une STRUCT 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 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 devrez peut-être stocker des informations sur de nombreuses personnes à l'avenir. Cela signifie que des variables pour différentes personnes 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'un Struct en C ++?
  • Quand utiliser une structure?
  • Initialisation de la structure C ++
  • Créer des instances de structure
  • Accès aux membres de la structure
  • Pointeurs vers la structure
  • Struct 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 nom_struct 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 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éer des instances de structure

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 struct de type Person. Nous pouvons utiliser cette variable pour accéder aux membres de la structure.

Accès 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 du membre de la structure Person:

p.age = 27;

Nous avons accédé à l'âge du membre de struct Person en utilisant l'instance de struct, p. Nous avons ensuite fixé la valeur de l'âge du membre à 27 ans.

Exemple 1:

#include 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;}

Production:

Voici une capture d'écran du code:

Explication du code:

  1. Incluez le fichier d'en-tête iostream dans notre programme pour utiliser les fonctions qui y sont définies.
  2. Incluez l'espace de noms std pour utiliser ses classes sans l'appeler.
  3. Créez une structure nommée Person.
  4. Le début du corps de la structure.
  5. Créez un membre de structure nommé citoyenneté de type entier.
  6. Créez un membre struct nommé age de type integer.
  7. Fin du corps de la structure.
  8. Appelez la fonction main (). La logique du programme doit être ajoutée dans le corps de cette fonction.
  9. Créez une instance de la structure Person et donnez-lui le nom p.
  10. Définissez la valeur de la citoyenneté du membre struct sur 1.
  11. Définissez la valeur de l'âge du membre struct sur 27.
  12. Imprimez la valeur de la citoyenneté du membre de structure sur la console avec un autre texte.
  13. Imprimez la valeur de l'âge du membre struct sur la console avec un autre texte.
  14. Le programme doit renvoyer une valeur s'il s'exécute avec succès.
  15. Fin de la fonction main ().

Pointeurs vers la structure

Il est possible de créer un pointeur qui pointe vers une structure. Il est similaire à la façon dont les pointeurs pointant vers des types de données natifs tels que int, float, double, etc. sont créés. Notez qu'un pointeur en C ++ stockera un emplacement mémoire.

Exemple 2:

#include 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;}

Production:

Voici une capture d'écran du code:

Explication du code:

  1. Incluez le fichier d'en-tête iostream dans notre programme afin d'utiliser ses fonctions.
  2. Incluez l'espace de noms std dans notre programme pour utiliser ses classes sans l'appeler.
  3. Créez une structure nommée Length.
  4. Début du corps de la structure Length.
  5. Créez un membre de structure nommé mètres de type de données entier.
  6. Créez un membre de structure nommé centimeters de type integer.
  7. Fin du corps de la structure Length.
  8. Appelez la fonction main ().
  9. Début du corps de la fonction main ().
  10. Créez une variable de pointeur * ptr et une variable normale l de type Length.
  11. Stockez l'adresse de la variable l dans notre variable pointeur.
  12. Afficher un message sur la console, demandant à l'utilisateur de saisir la valeur des compteurs variables.
  13. Lisez la valeur saisie par l'utilisateur via le clavier. Les compteurs de fonction membre sont ici accessibles à l'aide de la variable pointeur.
  14. Afficher un message sur la console, demandant à l'utilisateur de saisir la valeur des centimètres variables.
  15. Lisez la valeur saisie par l'utilisateur via le clavier. La fonction membre centimètres est ici accessible à l'aide de la variable pointeur.
  16. Affichez les valeurs lues par l'utilisateur sur la console avec un autre texte.
  17. Le programme doit renvoyer une valeur lors de l'exécution réussie.
  18. Fin du corps de la fonction main ().

Struct 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 struct 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:

#includeusing 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<

Production:

Voici une capture d'écran du code:

Explication du code:

  1. Incluez le fichier d'en-tête iostream dans notre fichier. Nous utiliserons alors ses fonctions sans obtenir d'erreurs.
  2. 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.
  3. Créez une structure nommée Person.
  4. Début du corps de la structure Person.
  5. Créez un membre de struct Person. Le membre est nommé citoyenneté et est de type entier.
  6. Créez un membre de struct Person. Le membre est nommé age et est de type entier.
  7. Fin du corps de struct Person.
  8. Créez une fonction qui prend l'instance de struct Person, p, comme argument.
  9. Appelez la fonction principale. Le {marque le début du corps de la fonction main ().
  10. Créez une instance de struct Person et donnez-lui le nom p.
  11. Accédez à la variable de membre de structure citoyenneté en utilisant l'instance de la structure, p, et en lui attribuant la valeur 1.
  12. Accédez à la variable de membre de structure age en utilisant l'instance de la structure, p, et en lui affectant la valeur 27.
  13. Appelez la fonction et passez-lui l'instance de la structure Person, p, comme argument.
  14. La fonction doit renvoyer une valeur lors de l'exécution réussie.
  15. Fin du corps de la fonction main ().
  16. Créez le corps de la fonction.
  17. Le début du corps de la fonction.
  18. Accédez à la valeur de citoyenneté du membre de structure et imprimez-la sur la console avec un autre texte.
  19. Accédez à la valeur d'âge du membre de structure et imprimez-la sur la console avec un autre texte.
  20. 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 tels que + - 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 devraient pas 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 réguliers.
  • Une structure peut être passée en tant qu'argument à une fonction de la même manière que des fonctions ordinaires.