uniones - C++-estructura vs. clase
typedef struct uso (5)
Posibles duplicados:
C / C ++ Struct vs Class
¿Qué son los tipos de POD en C ++?
Hola,
En el libro de C ++ In a Nutshell , en el capítulo 6: classes , unders especificadores de acceso , se menciona lo siguiente:
En una definición de clase, el acceso predeterminado para miembros y clases base es privado. En una definición de estructura, el valor predeterminado es público. Esa es la única diferencia entre una clase y una estructura , aunque por convención, algunos programadores usan struct solo para clases POD y usan clase para todas las otras clases .
Mis preguntas aquí son:
- ¿No hay otra diferencia entre clases y estructuras en que las estructuras no tienen funciones y solo mantienen los datos?
- ¿Qué son las clases de POD? Y, ¿qué se entiende por todas las otras clases aquí? ¿Hay clases especiales entonces?
Gracias.
1) Es la única diferencia en C ++.
2) POD: datos viejos simples Otras clases -> no POD
La otra diferencia es que
template<class T> ...
está permitido, pero
template<struct T> ...
no es.
Las clases POD son clases de datos simples que solo tienen miembros de datos y nada más. Hay algunas preguntas sobre sobre lo mismo. Encuentra uno aquí .
Además, puede tener funciones como miembros de estructuras en C ++ pero no en C. Necesita tener punteros a funciones como miembros en estructuras en C.
Ok, POD significa datos antiguos simples . Eso generalmente se refiere a las structs
sin ningún método porque estos tipos se usan luego para estructurar múltiples datos que pertenecen juntos.
En cuanto a las estructuras que no tienen métodos: he visto más de una vez que una estructura tiene métodos, y no creo que esto sea antinatural.
Podría probarse a sí mismo que no hay otra diferencia al tratar de definir una función en una estructura. Recuerdo que incluso mi profesor universitario que estaba enseñando sobre estructuras y clases en C ++ se sorprendió al saber esto (después de ser corregido por un estudiante). Yo lo creo, sin embargo. Fue divertido. El profesor seguía diciendo cuáles eran las diferencias y el alumno seguía diciendo "en realidad también se puede hacer eso en una estructura". Finalmente el prof. preguntó "OK, cuál es la diferencia" y el estudiante le informó que la única diferencia era la accesibilidad predeterminada de los miembros.
Una búsqueda rápida en Google sugiere que POD significa "Plain Old Data".