Avatar ·

Cuándo usar class y cuándo struct en C++? Entendiendo las diferencias clave

¡Hola a todos! Estoy aprendiendo C++ y no logro entender en qué casos se debe usar class y en cuáles struct. A nivel de sintaxis son casi iguales, pero he leído que hay una diferencia por defecto en el acceso a los miembros. Por ejemplo, escribí esta struct para almacenar coordenadas de un punto: ```cpp struct Point { int x; int y; }; ``` Y esta clase para un punto: ```cpp class PointClass { int x; int y; public: PointClass(int x, int y) : x(x), y(y) {} }; ``` Las uso así: ```cpp Point p1 = {10, 20}; // funciona PointClass p2(10, 20); // funciona ``` Pero cuando intenté hacer algo similar con una clase donde quería almacenar algunos datos y métodos, me confundí. He escuchado opiniones de que struct es para datos simples y class para objetos completos con invariantes. Pero ¿dónde está el límite exactamente? ¿En C# y C++ es diferente? ¿Quizás hay reglas o best practices de desarrolladores experimentados? ¡Gracias de antemano por las aclaraciones!