Structure en classe en C++

Namita Chaudhary 12 octobre 2023
  1. Structure en classe en C++
  2. Structure en C++
  3. Cours en C++
  4. Utiliser la structure dans une classe en C++
  5. Conclusion
Structure en classe en C++

Nous utilisons des tableaux chaque fois que nous devons stocker un groupe de types de données similaires. Cependant, s’il se présente une situation dans laquelle nous devons stocker un groupe de données de type non similaire, nous utilisons les types de données de structure et de classe.

Cet article explique la structure et la classe et comment utiliser une structure à l’intérieur d’une classe.

Structure en classe en C++

Une structure est un type de données défini par l’utilisateur utilisé pour stocker des types de données non similaires. Le mot clé struct le déclare.

D’autre part, une classe est également un type de données défini par l’utilisateur pour stocker des types de données non similaires. Le mot-clé class le désigne.

Cependant, la principale différence entre eux est que la classe cache les détails d’implémentation de ses membres et rend par défaut tous les membres d’une classe privés, alors qu’une structure ne cache pas les détails d’implémentation de ses membres et rend par défaut tous ses membres comme Publique.

Voyons maintenant comment utiliser une structure et une classe individuellement en C++.

Structure en C++

Nous déclarons une structure en C++ en utilisant le mot-clé struct, suivi de la déclaration de tous ses membres de données. Voyons un exemple de code pour mieux le comprendre.

#include <iostream>
using namespace std;
struct X {
  int a;
};
int main() {
  X x;
  x.a = 10;
  cout << x.a;
}

Production:

10

Dans l’exemple de code ci-dessus, nous déclarons une structure X, à l’intérieur de laquelle nous déclarons une variable a. Maintenant, nous créons une instance de cette structure puis essayons d’accéder à la variable a par cette instance X dans la méthode principale ; la structure peut facilement y accéder et changer sa valeur car tous ses membres sont, par défaut, publics.

Cours en C++

Nous déclarons une classe en C++ par le mot-clé class, suivi de la déclaration des données membres de la classe. Comprenons l’utilisation d’une classe en C++ à l’aide de code.

#include <iostream>
using namespace std;
class X {
  int a;
};
int main() {
  X x;
  x.a = 10;
  cout << x.a;
}

Production:

./ex.cpp: In function 'int main)':
./ex.cpp:23:9: error: 'int X::a' is private
     int a;
         ^
./ex.cpp:28:7: error: within this context
     x.a = 10;
       ^
./ex.cpp:23:9: error: 'int X::a' is private
     int a;
         ^
./ex.cpp:29:13: error: within this context
     cout<<x.a;
             ^

Dans l’exemple de code ci-dessus, nous avons créé une classe suivie de la déclaration d’un membre de données à l’intérieur en tant que variable a. Cependant, nous ne pouvons pas accéder à ce membre de données dans notre fonction principale car les membres d’une classe sont privés par défaut.

Par conséquent, il n’est pas accessible et génère une erreur.

Utiliser la structure dans une classe en C++

Nous avons vu comment créer une structure et une classe individuellement. Voyons maintenant comment nous allons utiliser une structure à l’intérieur d’une classe en C++.

Nous allons comprendre ce concept à l’aide d’un exemple de code.

#include <iostream>
using namespace std;
class X {
 public:
  struct T {
    int a;
  };
};
int main() {
  X x;
  x.a = 10;
  cout << x.a;
}

Production:

./ex.cpp: In function 'int main)':
./ex.cpp:15:7: error: 'class X' has no member named 'a'
     x.a = 10;
       ^
./ex.cpp:16:13: error: 'class X' has no member named 'a'
     cout<<x.a;
             ^

Comme vous pouvez le voir, le code ci-dessus génère une erreur lorsque nous essayons d’accéder à la variable de structure a dans notre méthode principale. C’est parce que nous avons seulement créé une instance de la classe et appelé notre variable par l’instance de la classe.

Nous n’avons même pas fait l’instance de la structure. Par conséquent, le programme renvoie une erreur qui ne détermine pas la variable a.

Maintenant, nous allons discuter de la façon de surmonter cette erreur. Comme vous l’avez vu dans les exemples de structure et de classe, vous devez créer une instance d’une structure et d’une classe avant d’accéder à ses membres.

Le même concept s’applique lorsque vous utilisez la structure à l’intérieur d’une classe. Comprenons cela à l’aide d’un exemple de code.

#include <iostream>
using namespace std;
class X {
 public:
  struct T {
    int a;
  };
  T t;
};
int main() {
  X x;
  x.t.a = 10;
  cout << x.t.a;
}

Production:

10

Par conséquent, nous avons maintenant créé une instance de la structure à l’intérieur de la classe elle-même et accédons à la variable de structure a à l’aide de la classe et de l’instance de la structure.

Conclusion

Dans cet article, nous avons vu l’utilisation de la classe ainsi que la structure en C++. Les deux sont des types de données définis par l’utilisateur ; cependant, la seule différence entre eux est que les membres d’une classe sont par défaut privés, alors que les membres d’une structure sont par défaut publics.

Ensuite, nous avons également discuté du problème que nous rencontrons habituellement lors de l’utilisation d’une structure dans une classe.

Article connexe - C++ Struct