Saltar a contenido

Última actualización:2026-10-15

struct vs class en C++

Sobre el autor:

Cuenta pública personal:

struct vs class en C++: diferencias clave explicadas | C++那些事

Sobre el contenido de struct en C y C++: ver temas sobre struct

En términos generales, struct se presta mejor a ser visto como la implementación de una estructura de datos, mientras que class se presta mejor a ser visto como la implementación de un objeto.

Diferencias:

La diferencia más esencial está en el control de acceso por defecto

Los permisos de acceso por defecto en la herencia: en struct son public, y en class son private.

Como implementación de una estructura de datos, el control de acceso a sus datos por defecto en struct es public, mientras que, como implementación de un objeto, el control de acceso a sus variables miembro por defecto en class es private.

Preguntas frecuentes

¿Cuál es la única diferencia entre struct y class?

El acceso y la herencia por defecto: struct es public por defecto, class es private. Fuera de eso son totalmente equivalentes en C++.

¿Puede un struct tener constructores y funciones virtuales?

Sí. Un struct de C++ es una clase: admite constructores, destructores, funciones virtuales y plantillas.

¿Cuándo usar struct?

Por convención, struct para agregados de datos sin invariantes; class en cuanto aparece encapsulación o invariantes.

Temas relacionados

Comentarios