Klassen
Willemers Informatik-Ecke
C++ unterstützt mit seinen Klassen das objektorientierte Programmieren. Dieses Paradigma ermöglicht das Schreiben robusterer und übersichtlicherer Programme. Aber C++ zwingt Sie zu nichts. Es lässt Ihnen die Freiheit, sich langsam heranzutasten.

Bjarne Stroustrup hat mit C++ die objektorientierte Programmierung nicht erfunden. Aber man kann sicher sagen, dass C++ die objektorierentierte Programmierung populär gemacht hat. Das scheint insofern verwunderlich, als dass C++ keineswegs zum objektorientierten Programmieren zwingt. Bjarne Stroustrup schreibt »Es war nicht meine Absicht, allen Benutzern einen bestimmten Programmierstil aufzuwingen« (Stroustrup, Bjarne: Die C++ Programmiersprache. Addison-Wesley, München, 4. Auflage, 2000. S. 24.) Ich würde mich sogar zu der Aussage versteigen, dass der Erfolg von C++ und der objektorientierten Programmierung vielleicht genau darin begründet liegt, dass der Programmierer zunächst seinen bisherigen Programmierstil beibehalten und Stück für Stück die Vorteile der objektorientierten Programmierung ausprobieren konnte, die er dann schätzen lernte. Immerhin wiegt ein Überzeugter so viel wie zehn Gezwungene. In diesem Sinne möchte ich Sie einladen, die Klassen von C++ zu entdecken. Nutzen Sie die offenkundigen Vorteile und Möglichkeiten, und bald werden Sie auch verstehen, warum sich das objektorientierte Paradigma so durchgesetzt hat, dass manch andere Programmiersprache gar keine andere Form der Programmierung mehr zulässt.

Paradigmen

Die Entwicklung von Software ist zeitaufwändig und fehlerbehaftet. Aus diesem Grund wurden immer leistungsfähigere Werkzeuge und Programmiersprachen geschaffen. So wurde mit der strukturierten Programmierung durch Schleifen und Abfrageblöcke erreicht, dass die Programmierer ohne den Sprung, d.~h. den Befehl goto auskamen. Dieser Befehl hatte bewirkt, dass Programme nach kurzer Zeit unübersichtlich wurden. Man sprach auch von Spaghetti-Code, weil die einzelnen Code-Stränge unübersichtlich verworren waren. Die Prozeduren und Funktionen ermöglichten den Top-Down-Ansatz, der eine Strategie bot, große Projekte in kleinere aufzuteilen und den Überblick über komplexe Algorithmen zu bewahren. Die Modularisierung in Kombination mit dem Geheimnisprinzip ermöglichte die Aufteilung von Programmen auf mehrere Programmiererteams. Alle diese Ansätze waren sehr stark algorithmenfixiert.

Objektorientierung

Das Neue an der Objektorientierung ist, die Objekte und damit die Datenstrukturen in den Mittelpunkt zu stellen und die Algorithmen als Aktivitäten des Objekts zu betrachten. Dieser Ansatz modelliert wesentlich besser die Wirklichkeit. Wir tun ja nichts um der Tätigkeit willen, sondern wir behandeln Objekte. Mit unterschiedlichen Arten von Objekten gehen wir anders um. Wenn das Programmiermodell der Wirklichkeit näher steht, wird einerseits das Erstellen eines Programms leichter. Schließlich ist jedes Programm ein kleines Modell der Wirklichkeit. Auf der anderen Seite hilft es dem Programmierer, sein Programm zu gestalten, da gewohnte Denkstrategien verwendet werden können, um Programme zu schreiben.