C-Plusplus
C++ ist eine Programmiersprache für allgemeine Anwendungen und basiert auf der Programmiersprache C wie in ISO/IEC 9899:1990 beschrieben.Zusätzlich zu den in C vorhandenen Möglichkeiten bietet C++ weitere Datentypen, Klassen, Ausnahmebehandlung, Templates (Schablonen), Namensräume, Inline-Funktionen, Überladen von Operatoren und Funktionsnamen, Referenzen, Operatoren zur Freispeicherverwaltung und eine erweiterte Bibliothek.
C++ wurde von Bjarne Stroustrup seit 1979 entwickelt, erste Anwendungen außerhalb der Forschung datieren vom Juli 1983, erste kommerzielle Systeme von 1985. Von einem einfachen "C mit Klassen", für das Simula-67 das primäre Vorbild war, entwickelte sich die Sprache von da an über mehrere Zwischenstufen zum heutigen, als weitgehend ausgereift geltenden Stand.
C++ ist seit 1998 von der ISO (ISO-14882) genormt. Die nächste ISO-C++-Norm wird voraussichtlich noch in dieser Dekade herausgegeben werden (C++0x).
Nach B. Stroustrup unterstützt C++ die folgenden Programmiertechniken:
Stärken:
Der folgende Quelltext stellt ein einfaches C++-Programm dar, das eine Meldung auf dem Standardausgabemedium ausgibt:
Bei main handelt es sich um eine Funktion, genauer gesagt ist es die Hauptfunktion des gesamten Programmes. Die Funktion main ist in jedem C++-Programm vorhanden und wird nach dem Start des Programmes aufgerufen.
Die C++-ISO-Norm schreibt vor, dass das Ergebnis von main vom Typ int sein muss. Ein Programm, bei dem das Ergebnis von main nicht vom Typ int ist, ist kein gültiges Programm im Sinne der C++-ISO-Norm (ISO-14882).
Funktionsdefinitionen haben in C++ den folgenden Aufbau:
Wird return Rückgabewert; bei einer Funktion mit von einem von void verschiedenen Rückgabetyp nicht angegeben, dann ist das Funktionsergebnis undefiniert.
Die Funktion main stellt in dieser Hinsicht eine Ausnahme dar, denn wenn main ohne Angabe eines Rückgabewertes am Ende der Funktion verlassen wird, dann ist dies gleichbedeutend damit, dass 0 zurückgegeben wird. Dies ist übrigens ein Unterschied zur Programmiersprache C. In C darf return auch innerhalb von main nicht weggelassen werden, andernfalls ist das Ergebnis undefiniert.
Im Fall von main ist der Aufrufer der Funktion der Aufrufer gesamten Programms. Der Wert 0 bedeutet per Konvention, dass der Programmablauf problemlos erfolgt ist.
Einer Funktion können auch Parameter übergeben werden.
Beispiel aus der Mathematik: "b ist das Quadrat von a". In C++:
Der Funktion square wird das Argument a übergeben, innerhalb der Funktion verarbeitet und schließlich zurückgegeben. In der Variablen b wird das Ergebnis gespeichert.
Mathematische Funktionen machen nur einen kleinen Teil der in C++ verwendeten Funktionen
aus, sie eignen sich aber gut zur Erklärung.
Einige wenige C-Programme gemäß C90 lassen sich nicht ohne Weiteres als C++ kompilieren, bzw. haben als C++-Programme eine etwas andere Bedeutung. Dabei handelt es sich aber um Sonderfälle, die in der Praxis keine große Rolle spielen.
Die letzten Änderungen an C fanden 1999 statt (ISO/IEC 9899:1999). Gemäß dem Ratifizierungsjahr 1999 spricht man, wenn man sich auf diesen C-Stand bezieht, deshalb auch von . Ein Beispiel für darin eingeführte Spracherweiterungen sind die sogenannten Variable Length Arrays.
Entstehung
Merkmale
Stärken und Schwächen
Schwächen:
Hallo-Welt-Programm in C++
#include
Erläuterungen:Funktionen in C++
Aufbau
Rückgabetyp ''Funktionsname()
{
return Rückgabewert;
}
oderRückgabetyp Funktionsname(Parameterliste'')
{
return Rückgabewert;
}
Der Wert hinter dem Wort return gibt Informationen an den Aufrufer der Funktion zurück. Ist void als Rückgabetyp angegeben, dann gibt die Funktion keinen Wert zurück. Die Funktion main
Funktionen mit Parametern
double b = square(a);
Die Funktion square könnte folgendermaßen definiert sein:double square(double Argument)
{
return Argument * Argument;
}
(Anmerkung: Ein double ist eine Fließkommazahl.)Verwandte Sprachen
C
C++ ist eine Erweiterung der Programmiersprache C gemäß dem Stand von 1990 (ISO/IEC 9899:1990, auch kurz genannt). Es gab aber auch Rückwirkungen von C++ auf C, beispielsweise hat C die Funktionsprototypen von C++ übernommen.Java und C#
Einen anderen Weg als C++ gehen Programmiersprachen wie Java und C#, die zu Gunsten eines konsistenteren Designs den Pfad der Kompatibilität zu C und C++ verlassen haben.
Dabei diente Java und C# die Syntax, nicht jedoch die Semantik von C++, als Vorbild.Objective-C
Einen alternativen Ansatz, die objektorientierte Programmierung in C zu integrieren, stellt Objective-C dar, das Smalltalks Klassen- und Objektbegriff auffasst und weiterentwickelt.
Compiler | Kommentar | Plattform |
---|---|---|
g++ | Kommandozeilencompiler; Bestandteil von GCC (GNU Compiler Collection) | Unix, Linux, MacOS X, Windows |
MinGW | Kommandozeilencompiler; g++ für Windows | Windows |
Intel C++ | Kommandozeilencompiler | Windows, Linux |
Comeau's C++ Compiler | Kommandozeilencompiler; unterstützt export von Templates | verschiedene Plattformen |
Microsoft Visual C++ | empfohlen: Version 7.1 oder neuer wegen höherer ISO-14882-Konformität als Vorgängerversionen | Windows |
Open Watcom | Kommandozeilencompiler | DOS, Windows, OS/2, Netware |
Borland C++ Builder | - | Windows |
Qt-Designer | - | Linux, Windows |
V C++ GUI | - | Linux |
GTKM | - | Linux |
DevCpp | - | Windows, Linux |
KDevelop | - | Linux |
Anjuta | - | Linux |
Siehe auch: Kommandozeilen-Compiler, Visuelle Programmierumgebung
C++-Standardbibliothek, Templates (Schablonen), Schlüsselwörter der Programmiersprache C++, C++-Metaprogrammierung (siehe auch Metaprogrammierung).
Literatur
Weblinks
Weitere Artikel zum Thema C++