Avatar ·

Was ist der Unterschied zwischen struct und class in C++? Wann verwendet man was?

Hallo, Kollegen!\n\nIch habe gerade angefangen, C++ zu lernen, und kann den Unterschied zwischen struct und class nicht verstehen. Auf den ersten Blick sehen sie fast gleich aus – beide erlauben es, Daten und Methoden zusammenzufassen. Aber warum gibt es dann zwei Schlüsselwörter für dasselbe in der Sprache?\n\nIch habe gelesen, dass in C (woher struct stammt) Strukturen nur Daten speichern, während in C++ ihnen Methoden hinzugefügt wurden. Aber hier ist ein Beispiel:\n\n```cpp\nstruct Point {\n int x, y;\n void print() { cout << x << ", " << y; }\n};\n\nclass Circle {\n int radius;\n void draw() { /* ... */ }\n};\n```\n\nWenn ich versuche, Folgendes zu tun:\n\n```cpp\nPoint p;\np.x = 10; // Funktioniert\nCircle c;\nc.radius = 5; // Fehler! radius — private\n```\n\nWarum wurde radius plötzlich private? Ich habe so etwas nicht angegeben! Bei struct ist alles umgekehrt – die Felder sind standardmäßig öffentlich.