Avatar ·

¿Cuál es la diferencia entre struct y class en C++? ¿Cuándo usar cada uno?

¡Saludos, colegas! Acabo de empezar a aprender C++ y no logro entender la diferencia entre struct y class. A primera vista parecen casi iguales — ambos permiten agrupar datos y métodos. Pero entonces, ¿por qué el lenguaje tiene dos palabras clave para lo mismo? Leí que en C (de donde proviene struct) las estructuras solo almacenan datos, mientras que en C++ se les agregaron métodos. Pero aquí hay un ejemplo: ```cpp struct Point { int x, y; void print() { cout << x << ", " << y; } }; class Circle { int radius; void draw() { /* ... */ } }; ``` Si intento hacer esto: ```cpp Point p; p.x = 10; // Funciona Circle c; c.radius = 5; // ¡Error! radius es private ``` ¿Por qué radius de repente se volvió private? ¡No especifiqué nada de eso! En struct es al revés — los campos son públicos por defecto. ¿Es esta la única diferencia? Y otro punto: he visto que la gente usa struct para estructuras de datos pequeñas (como un punto, un par de números), y class para objetos grandes con lógica. ¿Es solo una tradición o hay razones reales?