Unterschied zwischen Klasse und Struktur bei C++?

Hi so kurz vor Weihnachten noch ne Frage. Ich lern grad c++ und seh vom Aufbau her keinen Unterschied zwischen Klasse und Struktur. Kann mir jemand weiterhelfen?

Wünsche euch allen noch frohe Weihnachten und guten Rutsch.

KN2012-12-23T06:04:37Z

Beste Antwort

Struktur ist die Darstellung der Daten. z.B ein Punkt in 3D ist float[3]. Versiehst du diese Struktur noch mit Methoden (Funktionen) die Du auf diese Klasse anwenden kannst, dann wird daraus eine Klasse. Die Struktur float[3] könnte z.B. Methoden init, draw, savetofile usw. erhalten und wird dadurch zur Klasse.

🐟 Fish 🐟2012-12-23T09:34:17Z

Wenn man es genau nimmt eigentlich gar keiner. C++ ist ursprünglich ein Präprozessor für C. Eine Klasse ist dabei nichts weiter als eine Struktur Daten (Member) und Funktionszeigern (Methoden) selbst die Vererbung ist mit einer Struktur abbilden indem hier ein Element Base abgelegt wird. Eine klasse ist also eine Struktur mit einer ganz bestimmten Funktionalität.
class test : basetest
{
long wert;
long methode(long param);
}
Kannst du auch abbilden mit
typedef struct _test
{
struct basetest;
long wert;
long (*methode) (long param);
} test;

Du siehst du kannst mit einer Struktur sehr wohl eine klasse abbilden. C++ ist dabei nur eine Sprachvereinfachung.
Anders herum ist eine klasse eine spezielle Struktur. Übrigens lässt sich selbst die virtualiierung mit Hilfe einer Union realisieren.

P2012-12-23T06:04:47Z

Eine Struktur ist so etwas wie ein Record in Delphi, also eine Gruppe von Variablen.

Eine Klasse kann neben Objekten auch Methoden enthalten und von einer anderen Klasse abgeleitet werden.