Zum Inhalt springen

C++

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 26. April 2004 um 19:03 Uhr durch 62.138.203.81 (Diskussion). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Die Programmiersprache 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" entwickelte sich die Sprache von da an über mehrere Zwischenstufen zum heutigen, als weitgehend ausgereift geltenden Stand.


Überblick

Wie der Name andeutet, ist C++ eine Erweiterung der Programmiersprache C, die weiterhin enthalten ist (jedoch nicht als Teilmenge im mathematischen Sinn). Es gab aber auch Rückwirkungen von C++ auf C, die in die ANSI C-Norm einflossen.

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 Stroustrup ermöglicht C++ die Programmierung nach folgenden Paradigmen:

Für die objektorientierte Erweiterung der Sprache mittels Klassen war Simula-67 das primäre Vorbild. Die letzten Änderungen an C (C99) haben Spracherweiterungen eingeführt, über die C++ zunächst nicht verfügt (ein Beispiel sind die so genannten VLAs).

Da die Art der Erweiterung von C zu C++ die objektorientierte Programmierung ermöglicht, aber nicht erzwingt, nennt man das Ergebnis auch eine Hybridsprache. Dieser Ansatz machte es bei der Einführung der neuen Möglichkeiten, wie der objektorientierten und der generischen Programmierung möglich, einen "sanften" Übergang zu vollziehen.

Siehe auch: Entwurfsmuster, Metaprogrammierung

Hello-World-Programm in C++

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

#include <iostream>
int main()
{
  std::cout << "Hello, world!" << std::endl;
  return 0; // Rückgabewert ist 0
}

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

Der Wert hinter dem Wort return gibt Informationen bzw. Daten an den Aufrufer, in diesem Fall den Aufrufer des gesamten Programms, zurück. Der Wert 0 bedeutet per Konvention, dass der Programmablauf problemlos erfolgt ist. Wird der Rückgabewert bei der Funktion main nicht angegeben, dann ist dies gleichbedeutend damit, dass 0 zurückgegeben wird. Das folgende Programm macht also exakt das gleiche wie das obige:

#include <iostream>
int main()
{
  std::cout << "Hello, world!" << std::endl;
}

Auch hier erhält der Aufrufer des Programms als Ergebnis den Wert 0.


C++-Entwicklungswerkzeuge


Verwandte Sprachen

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. Dabei dient Java und C# die Syntax, nicht jedoch die Semantik von C++, als Vorbild.

Einen alternativen Ansatz, die objektorientierte Programmierung in C zu integrieren, stellt Objective-C dar, das Smalltalks Klassen- und Objektbegriff auffasst und weiterentwickelt.


Literatur

  • Bjarne Stroustrup: Die C++ Programmiersprache, Addison-Wesley, ISBN 3-8273-1660-X, das Standardwerk zu C++, Grundkenntnisse zu C von Vorteil; sehr empfehlenswert
  • Andrew Koenig / Barbara E. Moo: Intensivkurs C++, Pearson Studium, ISBN 3-8273-7029-9, hervorragendes Anfängerbuch, ein gewisses Grundverständnis zu Programmierung von Vorteil; sehr empfehlenswert
  • Scott Meyers: Effektiv C++ programmieren - 50 Wege zur Verbesserung ihrer Programme und Entwürfe, Addison-Wesley, ISBN 3-8273-1305-8, zur Vertiefung bereits vorhandener C++-Kenntnisse; sehr empfehlenswert
  • Scott Meyers: Mehr Effektiv C++ programmieren - 35 neue Wege zur Verbesserung ihrer Programme und Entwürfe, Addison-Wesley, ISBN 3-8273-1275-2, Vertiefung vorhandener C++-Kenntnisse; sehr empfehlenswert
  • Herb Sutter: Exceptional C++, ISBN 3-8273-1711-8 (deutsch), Vertiefung vorhandener C++-Kenntnisse; sehr empfehlenswert
  • Andrei Alexandrescu: Modernes C++ Design, mitp, ISBN 3-8266-1347-3, das Standardwerk zur C++-Metaprogrammierung, setzt ein tiefes Verständnis von C++ voraus; sehr empfehlenswert
  • Nicolai M. Josuttis: Objektorientiertes Programmieren in C++, Addison-Wesley, ISBN 3-8273-1771-1
  • Stanley B. Lippman, Josee Lajoie: C++ Primer, mitp, ISBN 3-8266-0811-9
  • Stanley B. Lippman, Josee Lajoie: C++ - IT-Studienausgabe, mitp, ISBN 3-8266-1429-1