Doublons possibles:
C/C++ Struct vs classe
Quels sont les types de POD en C++?
Salut,
Dans le C++ Dans un livre bref , dans chapitre 6: classes , under Les spécificateurs d'accès , ont mentionné ce qui suit:
Dans une définition de classe, l'accès par défaut pour les membres et les classes de base est privé. Dans une définition de structure, la valeur par défaut est publique. C'est la seule différence entre une classe et une structure , bien que par convention, certains programmeurs utilisent la structure uniquement pour POD et utilisez la classe pour toutes les autres classes .
Mes questions ici sont:
Merci.
L'autre différence est que
template<class T> ...
est autorisé, mais
template<struct T> ...
n'est pas.
Vous pourriez vous prouver qu'il n'y a pas d'autre différence en essayant de définir une fonction dans une structure. Je me souviens que même mon professeur d'université qui enseignait les structures et les cours en C++ a été surpris d'apprendre cela (après avoir été corrigé par un étudiant). Je le crois cependant. C'était plutôt amusant. Le professeur n'arrêtait pas de dire quelles étaient les différences et l'élève n'arrêtait pas de dire "en fait, vous pouvez aussi le faire dans une structure". Enfin le prof. a demandé "OK, quelle est la différence" et l'élève l'a informé que la seule différence était l'accessibilité par défaut des membres.
Une recherche rapide sur Google suggère que POD signifie "Plain Old Data".
Les classes POD sont des classes de données Plain-Old qui n'ont que des membres de données et rien d'autre. Il y a quelques questions sur stackoverflow à peu près les mêmes. Trouvez-en un ici .
En outre, vous pouvez avoir des fonctions en tant que membres de structures en C++ mais pas en C. Vous devez avoir des pointeurs vers des fonctions en tant que membres de structures en C.
Ok, POD signifie anciennes données simples. Cela fait généralement référence à structs
sans toutes les méthodes car ces types sont ensuite utilisés pour structurer plusieurs données qui appartiennent ensemble.
Quant aux structures n'ayant pas de méthodes: j'ai vu plus d'une fois qu'une structure avait des méthodes, et je ne pense pas que ce serait contre nature.
1) C'est la seule différence en C++.
2) POD: données anciennes simples Autres classes -> pas POD