Différence entre structure et classe

Auteur: Laura McKinney
Date De Création: 1 Avril 2021
Date De Mise À Jour: 5 Peut 2024
Anonim
Différence entre structure et classe - La Technologie
Différence entre structure et classe - La Technologie

Contenu


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 ++ étend 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 comparatif.

  1. Tableau de comparaison
  2. Définition
  3. Différences Clés
  4. Similitudes
  5. Conclusion

Tableau de comparaison

Base de comparaisonStructureClasse
De base Si 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éclaration struct nom_structure {
tapez struct_element 1;
tapez struct_element 2;
tapez struct_element 3;
.
.
.
};
class nom_classe {
membre de données;
fonction membre;
};
Exemple L'instance de structure s'appelle 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 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 qu’une structure est en cours de déclaration. 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 la 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 déclarer un tableau de ce type.

// exemple de structure sname sarray;

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 un astérisque (*) 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 en tant que 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 grâce à la fourniture de 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 à d'autres parties de votre programme d'accéder à des fonctions ou à des 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é lors de 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éé.
  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 présentait certaines des limitations car elle ne permettait pas de masquer des 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.