Différence entre Structure et Classe

Quelle est la différence entre Structure et Classe ? – Les structures et les classes sont presque pareils, mais il existe de nombreuses différences. La différence majeure est que la classe offre la flexibilité de combiner des données et des méthodes et fournit la réutilisabilité appelée héritage. Structure devrait normalement être utilisé pour regrouper des données. La différence technique se résume à des problèmes subtils concernant la visibilité par défaut des membres.
Différence entre la surcharge de fonctions et la redéfinition de fonctions en C ++Différence entre la surcharge de fonctions et la redéfinition de fonctions en C ++La surcharge et la redéfinition de fonctions sont des exemples de polymorphisme, mais elles sont complètement différentes. Avant de discuter de la différence entre les…Lire plus  
Les membres d’une classe sont privés par défaut et les membres d’une structure sont publics par défaut.
Par exemple, le programme 1 échoue au niveau de la compilation et le programme 2 fonctionne correctement.

// Programme 1
#include <stdio.h>
  
class Personne { 
    int age; //l'âge est un membre privé par défaut
}; 

int main()
{
    Personne p;
    p.age = 25; // erreur de compilation, car l'âge est un membre privé
    getchar(); 
    return 0; 
}

 

// Programme 2
#include <stdio.h>
  
struct Personne { 
    int age; //l'âge est un membre public par défaut
}; 

int main()
{
    Personne p;
    p.age = 25; // fonctionne bien parce que l'âge est un membre public
    getchar(); 
    return 0; 
} 
Différence entre exit 0 et exit 1Différence entre exit 0 et exit 1Quelle est la différence entre exit(0) et exit(1) ? – exit (0) et exit (1) les deux méthodes sont utilisées pour terminer le programme en…Lire plus  

Différences clés entre Structure et Classe
  • Classe est passé par référence, tandis qu’une structure est passé par copier, cela signifie qu’une classe est un type de référence et que son objet est créé sur la mémoire du tas où structure est un type de valeur et que son objet est créé dans la mémoire de la pile.
  • Classe peut créer une sous-classe qui héritera des propriétés et des méthodes de la classe mère, alors qu’une structure ne support pas l’héritage.
  • Une classe a tous les membres privés par défaut. Dans une structure tous les membres sont publics par défaut.
  • Les classes permettent d’effectuer un nettoyage avant que l’objet ne soit libéré, car le garbage collector fonctionne sur la mémoire du tas. Les objets sont généralement libérés lorsque l’instance n’est plus référencée par un autre code. Les structures ne possèdent pas le garbage collector, donc pas de gestion efficace de la mémoire.
  • La taille d’une classe vide est 1 octet, tandis que la taille d’une structure vide est 0 octet
  • Les classes sont toujours adaptées aux objets plus grands ou complexes et les structures conviennent aux petits objets.
Différence entre & et &&Différence entre & et && en C/C++Quelle est la différence entre & et && ? – les deux sont des opérateurs utilisés pour évaluer les instructions conditionnelles. L’opérateur & est un…Lire plus
Conclusion

Structure présente certaines des limites, car une structure ne permet pas de masquer les données, les structures ne supportent pas l’héritage. En C ++, les classes sont une version améliorées du structure.
 
 

2 réflexions sur “Différence entre Structure et Classe

  • juin 3, 2020 à 5:16
    Permalien

    Malheureusement, 2 choses sont fausses dans ce texte :

    Premièrement, la taille d’une structure vide n’est pas de 0 octet. C’est la même que celle d’une classe vide, c’est à dire 1 octet.
    Ensuite, ceci est très important, il est tout à fait possible de créer une structure qui hérite d’une classe. Il est entièrement faux de dire que la structure ne supporte pas l’héritage.

    Voilà voilà…

    Répondre
    • juin 3, 2020 à 6:47
      Permalien

      C’est vrai pour le langage C++, mais c’est FAUX pour le langage C.

      Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *