una - relaciones entre clases c++




visibilidad predeterminada de los miembros de clase/estructura de C++ (2)

C ++ se introdujo como un superconjunto de C. Structs se trasladaron desde C, donde la semántica de sus miembros era la de público. Existe una gran cantidad de código C, incluidas las bibliotecas que se desea trabajar con C ++ también, que utilizan estructuras. Las clases se introdujeron en C ++, y para ajustarse a la filosofía de encapsulación OO, sus miembros son privados por defecto.

En C ++, ¿por qué es privada la visibilidad predeterminada para los miembros de las clases, pero pública para las estructuras?


Debido a que una clase es una forma habitual de hacer orientación a objetos, lo que significa que las variables miembro deben ser privadas y tener acceso público: esto es bueno para crear un bajo acoplamiento . Las estructuras, por otro lado, tienen que ser compatibles con las estructuras C, que son siempre públicas (no hay ninguna noción de público y privado en C), y no usan accesadores / mutadores.





member