Infos Home | Impressum | Original Artikel & Autoren Liste


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.

Inhalt
1 Entstehung
2 Merkmale
3 Stärken und Schwächen
4 Hallo-Welt-Programm in C++
5 Funktionen in C++
6 Verwandte Sprachen
7 C++-Entwicklungswerkzeuge
8
9
10 Weitere Artikel zum Thema C++

Entstehung

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).

Merkmale

Nach B. Stroustrup unterstützt C++ die folgenden Programmiertechniken:

Siehe auch: Programmierparadigma, Entwurfsmuster.

Stärken und Schwächen

Stärken: Schwächen:

Hallo-Welt-Programm in C++

Der folgende Quelltext stellt ein einfaches C++-Programm dar, das eine Meldung auf dem Standardausgabemedium ausgibt:

 #include 
  
 int main()
 {
 std::cout << "Hallo Welt!" << std::endl;
 }

Erläuterungen:

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).

Funktionen in C++

Aufbau

Funktionsdefinitionen haben in C++ den folgenden Aufbau:

Rückgabetyp ''Funktionsname()
{
 
 return Rückgabewert;
}

oder

Rü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.

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

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.

Funktionen mit Parametern

Einer Funktion können auch Parameter übergeben werden.

Beispiel aus der Mathematik: "b ist das Quadrat von a". In C++:

 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.)

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.

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.

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.

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.

C++-Entwicklungswerkzeuge

Compiler Kommentar Plattform
g++ Kommandozeilencompiler; Bestandteil von GCC (GNU Compiler Collection) Unix, Linux, MacOS X, Windows
www.mingw.org/ MinGW Kommandozeilencompiler; g++ für Windows Windows
Intel C++ Kommandozeilencompiler Windows, Linux
www.comeaucomputing.com/ 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
www.openwatcom.org/ 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

Weitere Artikel zum Thema C++

C++-Standardbibliothek, Templates (Schablonen), Schlüsselwörter der Programmiersprache C++, C++-Metaprogrammierung (siehe auch Metaprogrammierung).


Der Ursprungsartikel stammt von der deutschsprachigen Wiki pedia (siehe oben: "Original Artikel & Autoren Liste").
Der Text steht unter der GNU Freie Dokumentation Lizenz.