Recommandé, 2024

Choix De L'Éditeur

Différence entre structure et classe

Une structure et une classe permettent à la fois de créer un type de données personnalisé pouvant être utilisé ultérieurement pour créer des instances. C ++ développe le rôle de structure pour créer une classe. La structure et la classe sont similaires à tous égards, à une différence près: la structure par défaut a tous ses membres «publics» et la classe par défaut tous ses membres «privés». Etudions la différence entre structure et classe en utilisant un tableau de comparaison.

Tableau de comparaison

Base de comparaisonStructureClasse
De baseSi le spécificateur d'accès n'est pas déclaré, par défaut, tous les membres sont «publics».Si le spécificateur d'accès n'est pas déclaré, par défaut, tous les membres sont «privés».
Déclarationstruct nom_structure {
tapez struct_element 1;
tapez struct_element 2;
tapez struct_element 3;
.
.
.
};
class nom_classe {
membre de données;
fonction membre;
};
ExempleL'instance de 'structure' est appelée 'variable de structure'.L'instance d'une 'classe' s'appelle 'objet'.

Définition de la structure

Une structure est un ensemble de variables de types de données différents, tous référencés par un seul nom. Une déclaration de structure forme un modèle utilisé pour créer une instance de la structure. La structure est déclarée comme suit.

 struct sname {type struct_element1; tapez struct_element2; tapez struct_element3; . . . } variable1, variable2, . . . 

Le mot clé 'struct' définit pour le compilateur le fait qu'une structure est en train d'être déclarée. Le 'sname' représente le nom donné à la structure. La déclaration de structure se termine toujours par un point-virgule, car elle est considérée comme une instruction. Vous pouvez déclarer les instances de la structure avant sa terminaison comme indiqué dans le code ci-dessus (variable1, variable2) ou vous pouvez déclarer l'instance de structure dans main (), en écrivant le nom de l'instance précédé du nom de la structure.

 // Exemple. main () {sname S1, S2; } 

Ici, S1 et S2 sont les instances de la structure. Les instances de la structure sont appelées «variable de structure». L'élément déclaré à l'intérieur du corps de la structure est accessible via les variables de structure à l'aide de l'opérateur point (.).

 // exemple S1. struct_element1; 
  • Le tableau de structure peut également être créé. Pour cela, vous devez d’abord déclarer une structure, puis un tableau de ce type.
 // exemple de structure sname sarray [10]; 

L'instruction ci-dessus crée un tableau avec le nom 'sarray' contenant dix variables, et chaque variable est organisée comme défini dans 'sname'.

  • Vous pouvez transmettre un membre de structure à une fonction et une structure entière à une fonction.
  • Comme un pointeur entier, un pointeur de tableau, un pointeur de structure peut également être déclaré en plaçant '*' devant le nom des variables de structure.
 // exemple de structure sname * S1; 

Remarque:

Les éléments 'structure' sont stockés dans un emplacement mémoire contigu.

Définition de classe

La classe dans la POO définit un nouveau type qui contient les membres de données et la fonction de membre, utilisés pour accéder aux membres de la classe. Les instances de classes sont appelées «objets», chacun ayant la même organisation qu'une classe. La classe est une abstraction logique, alors qu'un objet a une existence physique. La classe est syntaxiquement similaire à la structure. La classe peut être déclarée comme suit.

 class nom_classe {membres de données privés et fonctions membres. type d'accès_spécificateur membre_données; tapez mem_funct (liste de paramètres) {. . }} liste d'objets; 

Ici, la classe est un mot clé qui déclare au compilateur qu'une classe a été déclarée. La principale caractéristique de la programmation orientée objet est la dissimulation des données, obtenue en fournissant trois spécificateurs d'accès «public», «privé» et «protégé». Si vous ne spécifiez aucun spécificateur d'accès dans la classe lors de la déclaration de membres de données ou de fonctions de membre, tous sont considérés par défaut comme privés. Le spécificateur d'accès public permet aux autres parties de votre programme d'accéder aux fonctions ou aux données. Les membres privés de la classe sont accessibles uniquement aux membres de cette classe. Le spécificateur d'accès protégé est appliqué pendant l'héritage. Une fois que vous avez déclaré le spécificateur d'accès, il ne peut plus être modifié tout au long du programme.

Les objets ne sont rien d'autre que l'instance des classes. Les membres de la classe sont accédés par l'objet de la même classe à l'aide d'un opérateur point (.).

 //object.mem_funct (arguments); 
  • L'objet peut également être transmis en tant qu'argument à une fonction.
  • Le pointeur sur un objet peut également être créé.

Principales différences entre structure et classe

  1. La principale différence entre les structures et les classes est que, par défaut, tous les membres de la structure sont publics alors que, par défaut, tous les membres de la classe sont privés.

Similitudes:

  • En C ++, la structure et la classe sont syntaxiquement équivalentes.
  • La structure et la classe peuvent déclarer certains membres privés.
  • Le nom d'une structure ou d'une classe peut être utilisé en tant que type autonome.
  • La structure et une classe prennent en charge le mécanisme de l'héritage.

Conclusion:

La structure en C avait certaines limitations, car elle ne permettait pas le masquage de données, le type de données 'struct' ne pouvait pas être traité comme des types intégrés, les structures ne supportant pas l'héritage. La structure en C ++ a surmonté ces limitations. En C ++, les classes sont la version développée de la structure. Le programmeur trouve qu’il est facile d’utiliser la classe pour stocker des données et d’utiliser à la fois la structure, et de structurer uniquement les données.

Top