Twitter und Facebook-Anbindung
X
Tweet Follow @twitterapi
!!! Anbindung an twitter und facebook öffnen !!!

Wenn Ihnen mein Online-Buch gefällt,
dann bedanken Sie sich doch mit einer kleinen Spende...

15.1 Was sind Objekte und Klassen

15.1 Was sind Objekte und Klassen

Ganz formal sind Objekte Instanzen einer Klasse. Sicher klingt diese Definition sehr steif und ich denke nicht, dass ein Neuling jetzt schlauer ist. Also, was ist damit gemeint? Eine Klasse ist ein selbst definierter Datentyp, genauso wie "int" oder "float" ein Datentyp ist. Das Objekt ist dann die Variable des neuen Datentyps. Eine Klasse ist also eine Art Bauplan, wohingegen ein Objekt ein Haus ist, welches nach diesem Bauplan errichtet wurde. Andere Beispiele wären die DNS, welche vorgibt, wie ein Mensch wächst oder ein Förmchen (Klasse), mit welchem man Kekse (Objekte) aus dem Teig (Speicher) ausstechen kann.

Prinzipiell können sie, wie ein Struktur, Werte aufnehmen. Das Neue für Sie an einer Klasse ist nun, dass sie auch noch Funktionen aufnehmen können (streng genommen geht das heutzutage auch bei Strukturen, aber dazu später mehr). Wenn man Funktionen in einer Klasse kapselt, spricht man von Methoden einer Klasse (also ein Synonym). Die Werte nennt man Attribute oder auch Membervariablen und Eigenschaften, wobei man mit letzter Bezeichnung sehr vorsichtig sein muss, da in anderen Sprachen, wie z.B. Delphi, Eigenschaften etwas anderes sind (auch bei der COM-Technologie, welche Sprachen neutral ist).

Auch wenn man jetzt scheinbar alles in eine Klasse packen kann, was man irgendwann mal brauchen könnte, macht man dies nicht. Es werden immer nur Attribute und Methoden aufgenommen, welche für die innere Verwaltung und Funktionalität, notwendig ist. Beispielsweise könnte eine Klasse "Auto" eine Methode "Fahren" haben, aber man wird in diese Klasse niemals ein Hauptmenü mit einbauen. Eine Ausgabe hingegen macht da schon mehr Sinn, obwohl man dies nicht gleich einsehen würde. Denkt man aber an ein Computerspiel, ist es schon Sinnvoll, wenn sich das Auto selber zeichnen könnte.

Eine Besonderheit in C++ ist, dass man im Gegensatz zu den meisten anderen Sprachen, Objekte auch ganz normal auf dem Stack ablegen kann und nicht zwingend mit einem Pointer auf sie zugreifen muss. Dies wirkt einigen Nachteile der objektorientierten Programmierung entgegen. Des weiteren versucht der Compiler die Objekte möglichst zusammenhängend im Speicher anzulegen (ähnlich Strukturen oder Arrays), was cachefreundlich ist.

Zum Seitenanfang
Zum Inhaltsverzeichnis

© Copyright by Thomas Weiß, 2009 - 2012