¿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?