C++ vereinigt als Erweiterung der Programmiersprache C dessen Eigenschaften (Universalität, Effizienz durch maschinennahe Programmierung und hohe Verbreitung mit umfangreichen Bibliotheken) mit weiteren Sprachelementen. Hierzu gehören sowohl die Objektorientierung als auch weitere Elemente wie beispielsweise die Ausnahmebehandlung und die Template-Programmierung.
Eigenschaften von C++
Bei der Programmiersprache C++ handelt es sich nicht um eine rein objektorientierte Sprache. Vielmehr ist sie als eine hybride Sprache anzusehen, die unterschiedliche Sprachelemente vereinigt [Kirch-Prinz/Prinz 2005, S.23]. Als erstes Sprachelement enthält C++ die gesamte Sprache C als Teilmenge. Damit stehen in C++ alle Möglichkeiten zur Verfügung, die die Sprache C bietet. Somit lassen sich auch in C++ die umfangreichen Softwarebibliotheken nutzen, die in C entwickelt wurden. Die Einbindung von C erlaubt auch eine sehr leistungsfähige maschinennahe Programmierung. Allerdings erbt C++ mit der Einbindung der Sprache C auch dessen Nachteile. Dazu gehört beispielsweise die Übernahme der teilweise komplexen C-Syntax als auch die Einbeziehung verschiedener Konstrukte der Sprache C, die zum Teil plattformabhängig sind und deshalb bei Gebrauch die Portierung von erstellten C++-Programmen zwischen unterschiedlichen Rechnersystemen, Betriebssystemen und Compilern erschweren können.
Als zweites Sprachelement von C++ ist die Objektorientierung zu nennen. So unterstützt C++ die Konzepte der Datenabstraktion (Klassendefinition zur Beschreibung von Objekten), der Datenkapselung (kontrollierter Zugriff auf Daten und Funktionen) und der Vererbung (Ableitung neuer Klassen auf Basis bestehender) sowie die Polymorphie (Erlaubt es, dass Bezeichner – in Abhängigkeit des Kontextes – unterschiedliche Datentypen haben können).
Als drittes Sprachelement sind spezielle Erweiterungen zu nennen. Diese betreffen beispielsweise die Ausnahmebehandlung (englisch Exception Handling), Werkzeuge zur Codeoptimierung, Referenzen oder Schablonen (englisch Templates). Templates erlauben es, dass der eigentliche Programmcode erst während des Kompiliervorgangs erzeugt wird. So können Funktionen und Klassen für verschiedene Typen zur Verfügung gestellt werden. Hierdurch kann entweder Redundanz (Vermeidung mehrfacher Definitionen) vermieden oder Laufzeitvorteile (weniger Typumwandlungen) erreicht werden (vergleiche zur Template Programmierung [Josuttis/Vandervoorde 2002]).
Anwendungsgebiete
Die Sprache C++ wird in der Systemprogrammierung und in der Anwendungsprogrammierung eingesetzt. In der Systemprogrammierung werden hauptsächlich Betriebssysteme, eingebettete Systeme oder Treiber in C++ implementiert. In der Anwendungsprogrammierung dient C++ zur Realisierung zeitkritischer Routinen.
Literatur
Prinz-Kirch, U.; Prinz, P.: C++ Lernen undr professionell anwenden. 5. Aufl., Landsberg : MITP-Verlag 2010.
Josuttis, N.M.; Vandervoorde, D.: C++ Templates: Ther Complete Guide. Amsterdam : Addison-Wesley Longman 2002