Pregunta

En C ++, ¿por qué es privado de la visibilidad por defecto para los miembros de las clases y público para estructuras?

¿Fue útil?

Solución

C ++ se introdujo como un superconjunto de C. Las estructuras se llevaron a más de C, donde la semántica de sus miembros fue el de público. Toda una gran cantidad de código C existe, incluyendo bibliotecas que se deseara trabajar con C ++, así, que las estructuras de uso. Las clases se introdujeron en C ++, y con arreglo a la filosofía OO de encapsulación, sus miembros son privados por defecto.

Otros consejos

Debido a que una clase es una forma usual de hacer la orientación a objetos, lo que significa que las variables miembro debe ser privada y tener descriptores de acceso públicos - esto es bueno para la creación de bajo acoplamiento . Las estructuras, por el contrario, tienen que ser compatibles con las estructuras de C, que son siempre públicos (no hay noción de público y privado en C), y no utilizar descriptores de acceso / mutadores.

Probablemente para la compatibilidad hacia atrás con C estructuras. De esta manera las estructuras declaradas en el código C continuarán trabajando de la misma manera cuando se utiliza en el código C ++.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top