Avatar ·

Qual é a diferença entre struct e class em C++? Quando usar cada um?

Saudações, colegas! Acabei de começar a estudar C++ e não consigo entender a diferença entre struct e class. À primeira vista, eles parecem quase iguais — ambos permitem agrupar dados e métodos. Mas por que então a linguagem tem duas palavras-chave para a mesma coisa? Li que em C (de onde veio struct) as estruturas armazenam apenas dados, e em C++ adicionaram métodos a elas. Mas eis um exemplo: ```cpp struct Point { int x, y; void print() { cout << x << ", " << y; } }; class Circle { int radius; void draw() { /* ... */ } }; ``` Se eu tentar fazer assim: ```cpp Point p; p.x = 10; // Funciona Circle c; c.radius = 5; // Erro! radius é private ``` Por que radius de repente se tornou private? Eu não especifiquei nada disso! Em struct é o oposto — os campos são públicos por padrão. Essa é a única diferença? E mais um ponto: vi pessoas usando struct para pequenas estruturas de dados (como ponto, par de números) e class para objetos grandes com lógica. Isso é uma prática recomendada?