Um jetzt ein Betriebssystem für die Computer der Serie PDP-11 (die schlußendlich zum UNIX Betriebssystem führten) zu schreiben, wurde von AT&T eben die Programmiersprache C entwickelt. Das Ziel der Entwickler war eine möglichst effiziente Programmiersprache. Bjarne Stroustrup, auch Mitarbeiter von AT&T, entwickelte C++, um C um die Objektorientierung zu erweitern. Da das Konzept der Objektorientierung zu diesem Zeitpunkt noch neu und alle Implementationen von objektorientierten Programmiersprachen sehr langsam waren, war es oberstes Ziel, die Effizients von C in C++ beizubehalten.
C++ ist eine erweiterbare Sprache, da wir neue Typen definieren können, die sich wie die vordefinierten Typen verhalten, die Teil der Programmiersprache selbst sind. C++ ist somit für größere Programmieraufgaben geeignet.
Die Programmiersprache C war ursprünglich durch die klassische Publikation (siehe oben) von Kernigan und Ritchie, \'\'The C Programming language``, definiert und dies war bis vor wenigen Jahren der Standard für alle C Programmierer. Der ANSI Standard für C wurde schließlich im Dezember 1989 als offizieller Standard für das Programmieren in C festgelegt. Der ANSI-C Standard erweitert die ursprüngliche Sprache der Kernigan und Ritchie-Definition um Vieles und ändert sie in einigen wenigen Punkten ab. Die beiden Definitionen sind nicht zu hundert Prozent kompatibel.
Während der ANSI-C Standard entwickelt wurde, übernahm man viele der neuen Konstrukte von C++ in die Definition von C selbst. Zwar ist also C++ eine Erweiterung von C, es ist aber nur fair zu sagen, daß ANSI-C einige seiner Wurzeln in C++ hat. Ein Beispiel dafür wären etwa die Prototypen, die für C++ entwickelt und später zu C hinzugefügt wurden.
Der beste und einfachste Weg, C++ zu erlernen, ist, es zu verwenden. So gut wie jedes korrekte C Programm ist auch in C++ korrekt und die ungefähr 12 neuen Schlüsselwörter sind der einzige Grund, warum einige C Programme nicht als C++ Programme compiliert und ausgeführt werden können. Somit ist der beste Weg, C++ zu erlernen, das vorhandene Wissen (C) zu erweitern und neue Konstrukte zu verwenden, wenn sie in einem Programm gerade nützlich sind. Es wäre ein großer Fehler, zu versuchen, alle neuen Konstrukte und Konzepte in Deinem ersten C++ Programm anzuwenden. Am Ende hättest Du möglicherweise einen unverständlichen Mischmasch an Quellcode, ineffizienter als dasselbe Programm in C alleine. Es wäre viel besser, nach und nach neue Konstrukte in seinen Talon aufzunehmen und sie anzuwenden, wenn sie gebraucht werden während man Erfahrung im Umgang mit ihnen sammelst.
Als Illustration der Portabilität von C nach C++ kann wohl der Hinweis dienen, daß alle Beispielprogramme des Coronado Enterprises C Tutorial einwandfrei als C++ Programme kompiliert und ausgeführt werden konnten. Dabei handelte es sich um Version 2.6, die 1994 erschien. Durch die Neuerungen und Änderungen der C++ Compiler seit damals mag dies heute nicht mehr stimmen. Keines der C++ Programme wird sich allerdings als C Programm kompilieren lassen, aus dem ganz einfachen Grund, daß der neue C++ Kommentarstil verwendet wird (da die meisten neueren C Compiler auch C++ Compiler sind, tolerieren sie aber in vielen Fällen die Verwendung dieser Kommentare und geben schlimmstenfalls eine Warnung aus).
Es gibt im Wesentlichen zwei Arten der Benennung von C++ Dateien, eine mit der Erweiterung .CPP, die andre mit der Erweiterung .CXX. In den Jugendjahren von C++ wurden header-Dateien mit der Erweiterung .HPP benannt, es gibt aber einen Trend, alle header-Dateien mit der Erweiterung .H zu versehen.
Es gibt ein Komitee, das einen ANSI-C++ Standard zum Ziel hat, der aber nicht vor 1998 zu erwarten ist. Bis dahin wird die Sprache einigen Veränderungen unterliegen. In der Tat hat es in den letzten zwei Jahren viele Änderungen gegeben, da die Autoren von Compilern mit der Sprache Schritt zu halten versuchen.
|