Die Implementation der Klasse

Beispielprogramm: BOX.CPP

Im Programm BOX.CPP findet sich die Implementation der Methoden, die wir in der header-Datei deklariert haben. In Zeile 2 importieren wir diese Datei mit den Prototypen der Methoden und den Definitionen der Variablen auch. Die Zeilen 16 bis 35 der Datei BOXEN1.CPP finden wir in dieser Datei, der Implementation der Methoden, die wir für die Klasse Box deklariert haben, wieder.

Zwar können wir diese Datei kompilieren, ausführen können wir sie aber nicht, da sie keine Funktion main() enthält, den Einstiegspunkt, den jedes ANSI-C oder C++ Programm benötigt. Nach dem Kompilieren wird der Objektcode im aktuellen Verzeichnis gespeichert und steht zur weiteren Verwendung durch andere Programme bereit. Das Ergebnis eines Kompiliervorganges wird üblicherweise Objektdatei genannt, da sie Objektcode beinhaltet. Das Wort Objekt in diesem Sinn hat aber nichts damit zu tun, was wir unter einem Objekt verstehen, wenn wir von objektorientiertem Programmieren sprechen. Es wird einfach die Bedeutung des Wortes "überladen". Die Sitte, das Resultat des Kompilierens als Objektdatei zu bezeichnen gibt es schon wesentlich länger als das Konzept des objektorientierten Programmierens.

Die Trennung von Definition und Implementation ist ein wesentlicher Schritt vorwärts in der Entwicklung von Software. Die Programmiererin benötigt lediglich die Datei mit der Definition, um die Klasse effektiv in seinen Programmen einsetzen zu können. Sie muß nicht wissen, wie die einzelnen Methoden realisiert sind. Wenn ihr die Implementation zur Verfügung stünde, könnte sie diese studieren und möglicherweise den einen oder anderen Trick finden, wie sie ihr Programm etwas effizienter gestalten kann, das würde aber zu nicht portierbarem Code und leicht zu Fehlern führen, wenn die Autorin der Klasse die Implementation modifiziert, ohne die Schnittstellen zu ändern. Der Sinn und Zweck von objektorientiertem Programmieren ist es, die Implementation so zu verstecken und abzusondern, daß sie nichts außerhalb ihres kleinen Bereiches innerhalb der Schnittstelle beeinflussen kann.

Du solltest die Implementation nun kompilieren. Wir werden das Resultat im nächsten Beispielprogramm verwenden.

(weiter...)