Question

En C ++, pourquoi est privé la visibilité par défaut pour les membres des classes, mais public struct?

Était-ce utile?

La solution

C ++ a été présenté comme un surensemble de C. Structs ont été reportées de C, où la sémantique de leurs membres était celle du public. Un tas de code C existe, y compris les bibliothèques qui ont été souhaitées à travailler avec C ++, ainsi que l'utilisation struct. Les classes ont été introduites en C ++, et de se conformer à la philosophie de OO d'encapsulation, leurs membres sont privés par défaut.

Autres conseils

Parce qu'une classe est une façon habituelle de faire l'orientation objet, ce qui signifie que les variables membres doivent être privées et accesseurs publics - ce qui est bon pour la création bas de couplage. Struct, d'autre part, doivent être compatibles avec les structures C, qui sont toujours publiques (il n'y a pas de notion de public et privé en C), et ne pas utiliser accesseurs / modifieurs.

Probablement pour la compatibilité descendante avec C struct. Cette struct façon déclarée dans le code C continueront à travailler de la même manière quand il est utilisé dans le code C.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top