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.