Quelle est la différence entre struct et class en C++ ? Quand utiliser quoi ?
Salut, collègues !
Je viens de commencer à apprendre le C++ et je n'arrive pas à comprendre la différence entre struct et class. À première vue, ils se ressemblent presque — les deux permettent de regrouper des données et des méthodes. Mais pourquoi alors le langage a-t-il deux mots-clés pour la même chose ?
J'ai lu qu'en C (d'où vient struct), les structures ne stockent que des données, tandis qu'en C++ on y a ajouté des méthodes. Mais voici un exemple :
```cpp
struct Point {
int x, y;
void print() { cout << x << ", " << y; }
};
class Circle {
int radius;
void draw() { /* ... */ }
};
```
Si j'essaie de faire ceci :
```cpp
Point p;
p.x = 10; // Fonctionne
Circle c;
c.radius = 5; // Erreur ! radius est private
```
Pourquoi radius est soudainement devenu private ? Je n'ai rien spécifié de tel ! Dans struct, c'est l'inverse — les champs sont publics par défaut.