Quando usar class e quando usar struct em C++? Regras e melhores práticas
Olá a todos! Comecei recentemente a estudar C++ e fiquei confuso sobre a escolha entre class e struct. Aparentemente, em C++ eles são quase iguais, mas vejo que programadores experientes os usam de forma diferente. Por exemplo, escrevi este código para um ponto no plano:
```cpp
struct Point {
int x;
int y;
};
class Circle {
private:
int radius;
public:
Circle(int r) : radius(r) {}
int getRadius() { return radius; }
};
```
Mas depois vi alguém fazendo assim:
```cpp
class Point2 {
public:
int x;
int y;
};
```
E fiquei sem entender — por que usar class se tudo é público? E, ao contrário, por que não fazer um struct com campos e métodos privados?
Ouvi dizer que existe uma "regra de ouro" (rule of thumb), mas não consigo encontrar uma explicação clara. Quando devo escolher struct e quando class? Existem convenções ou é apenas questão de gosto? Agradeço por uma resposta detalhada com exemplos!
<<>>