| C-Plusplus | Dieser Text beschreibt C-Plusplus. Der untere Text beinhaltet die C-Plusplus Beschreibung. Soweit es sich um ein definierbares Objekt handelt, sollte hier eine C-Plusplus Definition vorhanden sein. Sollte eine Definition von C-Plusplus fehlen, kann diese von Ihnen verfaßt werden. Wir sind bestrebt die Beschreibung von C-Plusplus möglichst ausführlich zu halten.
Jeder Text bei Know-Library, sowie ein Teil davon (Definition, Beschreibung etc.), außer Bücher Beschreibungen kann bearbeitet werden. Falls die Beschreibung auf dieser Seite nicht korrekt ist klicken Sie auf 'Beschreibung editieren' um den Text zu korrigieren bzw. neuen einzufügen. Weitere Informationen und Bücher zum Thema C-Plusplus Beschreibung , so wie Link zum Forum finden Sie weiter unten. Eine Übersicht der Texte, die das Thema C-Plusplus beschreiben finden Sie auf der Seite alle Artikel über C-Plusplus. Fragen zu dem Thema C-Plusplus können im Forum gestellt werden. Klicken Sie hier um zu dem Forum zu wechseln.
C-Plusplus ArtikelC++ ist eine prozedurale Programmiersprache für allgemeine Anwendungen und stellt Sprachmittel für abstrakte Datentypen sowie modulare, generische, objektorientierte und strukturierte Programmierung zur Verfügung. C++ 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 mit Vererbung und virtuellen Funktionen , Ausnahmebehandlung, Templates (Schablonen), Namensräume, Inline-Funktionen, Überladen von Operatoren und Funktionsnamen, Referenzen, Operatoren zur Freispeicherverwaltung und eine erweiterte Bibliothek.
Buch-Tipp: C für Windows Super Buch Mittlerweile etwas überholt, aber wer wirklich wissen will, wie man die Windows-API ohne MFC nutzt findet hier was er braucht. | |
C++ wurde von Bjarne Stroustrup ab 1979 bei AT&T entwickelt. Die Idee für eine neue Programmiersprache entstand dabei aus den Erfahrungen, die er während seiner Promotionsarbeit gesammelt hatte. Stroustrup fand die Sprache Simula hilfreich für die Entwicklung großer Software-Projekte, für praktische Anwendungen war sie aber zu langsam in der Ausführung. Demgegenüber war die Sprache BCPL zwar schnell, aber zu maschinennah und nicht geeignet für die Entwicklung großer Software-Projekte.
Als Stroustrup in den Bell-Laboratorien zu arbeiten begann, sah er sich mit dem Problem konfrontiert, den UNIX-Betriebssystemkern in dem Hinblick auf verteilte Programmierung analysieren zu müssen. Mit den Erfahrungen aus seiner Promotion machte er sich daran, die Programmiersprache C um ein Klassenkonzept zu erweitern, für das die Sprache Simula-67 das primäre Vorbild war.
Die Wahl fiel auf die Programmiersprache C, weil C eine Vielzwecksprache war, schnellen Code produzierte und einfach auf andere Plattformen zu portieren war. Als dem Betriebssystem UNIX beiliegende Sprache hatte C außerdem eine nicht unerhebliche Verbreitung. Zunächst fügte er der Sprache Klassen (mit Datenkapselung) hinzu, dann abgeleitete Klassen, ein strengeres Typsystem, Inline-Funktionen und Standard-Argumente.
Während Stroustrup "C mit Klassen" ("C with Classes") entwickelte (woraus später C++ wurde), schrieb er auch Cfront, einen Compiler, der aus C mit Klassen zunächst C-Code als Zwischenresultat erzeugte. Die erste kommerzielle Version von Cfront erschien in dem Oktober 1985.
1982 wurde C mit Klassen in C++ umbenannt. Erweiterungen darin waren: virtuelle Funktionen, Überladen von Funktionsnamen und Operatoren, Referenzen, Konstanten, änderbare Freispeicherverwaltung, verbesserte Typüberprüfung, und eine andere Art von Kommentaren (//).
1985 erschien die erste Version von C++, die eine wichtige Referenzversion darstellte, da die Sprache damals noch nicht standardisiert war. 1989 erschien die Version 2.0 von C++. Neu darin waren Mehrfachvererbung, abstrakte Klassen, statische Elementfunktionen, konstante Elementfunktionen und die Erweiterung des Schutzmodells um "protected". 1990 erschien das Buch "The Annotated C++ Reference Manual", das als Grundlage für den darauffolgenden Standardisierungsprozess diente.
Relativ spät wurden der Sprache Templates, Ausnahmen, Namensräume, neuartige Typumwandlungen und boolesche Typen hinzugefügt.
Im Zuge der Weiterentwicklung der Sprache C++ entstand auch eine gegenüber C erweiterte Standardbibliothek. Erste Ergänzung war die Stream-I/O-Bibliothek, die Ersatz für traditionelle C-Funktionen wie zu dem Beispiel printf und scanf bietet. Eine der wesentlichen Erweiterungen der Standardbibliothek kam später durch die Integration großer Teile der bei HP entwickelten "STL" hinzu.
Nach jahrelanger Arbeit wurde schließlich 1998 von der ISO die endgültige Fassung der Sprache C++ (ISO/IEC 14882:1998) genormt.
2003 wurde die erste überarbeitete Version von ISO/IEC 14882:1998 verabschiedet (ISO/IEC 14882:2003). Diese Revision (Liste der Änderungen (http://www.acceleratedcpp.com/authors/koenig/c++std/revisions.pdf)) ist lediglich eine Nachbesserung der Norm ISO/IEC 14882:1998 und sollte nicht mit der in Arbeit befindlichen Version C++0x verwechselt werden.
Die nächste Version der Sprache C++ erscheint voraussichtlich noch in dieser Dekade (C++0x).
|
| |
Stärken:
- Die Erzeugung hocheffizienten Codes ist möglich.
- Sowohl maschinennahe als auch hochabstrakte Programmierung ist möglich.
- Sehr hohe Ausdrucksstärke und Flexibilität - Beispiel: die anpassbare Freispeicherverwaltung, in die sich zu dem Beispiel nahtlos eine Garbage-Collection integrieren lässt
- Für große Projekte geeignet
- Weite Verbreitung
- Die Sprache ist nicht in dem Besitz einer Organisation (im Unterschied zu beispielsweise Java).
- Kompatibilität mit C - Vorteil: Es steht eine breite Codebasis zur Verfügung.
Schwächen:
- Kompatibilität mit C - Nachteil: historischer Ballast muss mitgeschleppt werden, zu dem Beispiel der von C übernommene Präprozessor
- Die aktuellen Compiler (Stand: 2004) sind rückständig in dem Bezug auf die Umsetzung der ISO-Norm.
- Die aktuellen Compiler produzieren nicht stets optimalen Code, sowohl in dem Bezug auf Effizienz als auch auf Code-Größe.
- Zu dem Erlernen sind verhältnismäßig lange Einarbeitungszeiten erforderlich.
- Die vorhandene C++-Standardbibliothek deckt viele wichtige Erfordernisse nicht ab, zu dem Beispiel Threads, TCP/IP, Dateisystem-Verzeichnisse. Darum besteht in diesen Bereichen eine eingeschränkte Portabilität über Betriebssystemgrenzen hinweg.
Buch-Tipp: Der Dativ ist dem Genitiv sein Tod. Folge 2: Neues aus dem Irrgarten der deutschen Sprache So unterhaltsame wie belehrende Autorenlesung
Wer möchte dem Journalisten Bastian Sick nicht beipflichten, wenn er die Verwahrlosung der deutschen Sprache beklagt. Da werden bedenken- und gedankenlos die Fälle des Genitivs und des Dativs durcheinandergeworfen, Imperative falsch gebildet, Kommata vergessen oder gefühlt" an falschen Stellen gesetzt.... |
| |
Der folgende Quelltext stellt ein einfaches C++-Programm dar, das eine Meldung auf dem Standardausgabemedium ausgibt:
#include <iostream>
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 nachdem 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 in dem Sinne der C++-ISO-Norm (ISO-14882).
Die Funktion main ist die einzige Funktion, die - obwohl sie einen Wert zurückgibt - keine return<tt> Anweisung benötigt. Ohne die explizite Anweisung <tt>return gibt main den Wert EXIT_SUCCESS (definiert in <cstddef>) zurück.
|
| |
C++ ist eine Erweiterung der Programmiersprache C gemäß dem Stand von 1990 (ISO/IEC 9899:1990, auch kurz C90 genannt). C++ enthält C nachdem Stand C90 fast vollständig. Einige wenige C-Programme lassen sich zwar nicht ohne Weiteres als C++ kompilieren, beziehungsweise 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 Kompatibilität mit C war eines der Hauptdesignziele bei der Entwicklung der Programmiersprache C++. Grund dafür war die weite Verbreitung von C. Da C auch heute noch für praktisch jeden Prozessor verfügbar ist, und daher C die verbreitetste Programmiersprache darstellt, wird Kompatibilität mit C stets noch als eine der wichtigsten Merkmalen von C++ angesehen.
Im Laufe der Entwicklung der beiden Sprachen gab es auch Rückwirkungen von C++ auf C. Beispielsweise wurden in C const sowie die Funktionsprototypen von C++ übernommen.
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, darum auch von C99. Ein Beispiel für darin eingeführte Spracherweiterungen sind die so genannten VLAs (engl. variable length array).
Buch-Tipp: Die Sprache der Pferde. Die Monty Roberts Methode des Join-up. Das Join-up wir nicht ca. beschrieben sondern es ist auch gezeichnet ich liebe es =) Ich und meine Tochter haben dieses Buch gelesen und so das Leben der Pferde besser erlernt. Ob wohl wir selbst 5 Pferde haben und uns gut mit so was aus kennen haben wir es drotzdem gelesen und ich muss schon sagen wir haben eine menge da zu gelernt. Man kann durch... |
Vergleich mit anderen Sprachen | |
Die Programmiersprachen Java und C# haben eine ähnliche Syntax wie C++, sind aber "intern" anders aufgebaut. Java und C# sind praktisch nicht mehr kompatibel mit C.
Ein wesentlicher Unterschied zwischen diesen Sprachen und C++ besteht darin, dass C++ über generische Sprachmerkmale (Templates) verfügt. Es wird zwar bei Java und C# an generischen Spracherweiterungen (s. generischer Typ) gearbeitet (Stand: 2004), die Entwicklung geht dort aber in eine etwas andere Richtung als bei C++.
Gerade die generische Programmierung macht aber C++ zu einem mächtigen Programmierwerkzeug. Während die objektorientierte Programmierung in Java und C# als der Gipfel der vorhandenen Abstraktionsmechanismen angesehen wird, ist diese Art der Programmierung in C++ rückläufig. So werden tiefe Klassenhierarchieen vermieden, und zu Gunsten der Effizienz und der Minimierung des Ressourcenverbrauchs verzichtet man in vielen Fällen auf Polymorphie, dem Kernmechanismus der objektorientierten Programmierung.
Siehe auch: Simula, Objective-C, Smalltalk, Eiffel (Programmiersprache)
Buch-Tipp: Die Sprache der Tiere. In 7 Schritten zum Animal Communicator Ein wunderbares Buch. . . Viele Bücher über Tk habe ich schon gelesen,Seminare besucht,aber was mich wirklich einen großen Schritt weitergebracht hat,ist dieses Buch. Liebevoll,klar und menschlich nimmt Carol Gurney einen an die Hand,gibt wunderbare Übungen vor und ermutigt den Leser,an sich und seine Fortschritte zu glauben. . |
| |
| Compiler
| Kommentar
| Plattform
|
| Comeau's C++ Compiler (http://www.comeaucomputing.com/)
| Gilt als der Compiler, der C++ am vollständigsten umsetzt; unterstützt zu dem Beispiel auch export von Templates; Kommandozeilencompiler; kann über das Internet (http://www.comeaucomputing.com/tryitout/) ausprobiert werden | verschiedene Plattformen
|
| Intel C++ (http://www.intel.com/software/products/compilers/)
| Ebenfalls ein Compiler, der C++ sehr vollständig umsetzt; erzeugt hocheffizienten Code für Intel-Prozessoren; Kommandozeilencompiler | Windows, Linux
|
| Microsoft Visual C++
| Verbreitetster Compiler unter Windows; empfohlen ist die Version 7.1 oder neuer, wegen sehr vollständiger Umsetzung der Sprache C++; die Nachfolgeversion Visual C++ 2005 Express (http://lab.msdn.microsoft.com/express/visualc/) ist z.Zt. (2004) kostenlos erhältlich (als Beta-Version)
| Windows
|
| g++
| Bestandteil von GCC; Kommandozeilencompiler; kann aber auch in integrierten Entwicklungsumgebungen ausgeführt werden, zu dem Beispiel unter Linux in KDevelop oder Anjuta (http://anjuta.sourceforge.net/) | Unix, Linux, MacOS X, Windows
|
| MinGW
| "g++ für Windows"; kann sowohl in der Kommandozeile ausgeführt werden als auch in integrierten Entwicklungsumgebungen wie zu dem Beispiel Dev-C++ | Windows
|
| Borland C++ Builder
| Grafisches Entwicklungswerkzeug zur einfachen und schnellen Anwendungsentwicklung; integrierte Entwicklungsumgebung; kann auch Pascal-Module (Delphi) kompilieren und debuggen; Weiterentwicklung nicht sichergestellt (Stand: September 2004) | Windows
|
| Open Watcom (http://www.openwatcom.org/)
| Compiler und IDE für exotische Platformen. Die C++-Standardbibliothek ist noch nicht vollständig dabei. Aber es wird daran gearbeitet. | DOS, Windows, OS/2, Netware, (bald auch Linux)
|
Siehe auch: Kommandozeilen-Compiler, Visuelle Programmierumgebung
Buch-Tipp: Duden. Deutsches Universalwörterbuch Drei in einem Dieses Wörterbuch ersetzt über weite Züge das Fremswörterbuch, das ethymologische Wörterbuch und den Rechtschreibduden, bzw. fasst alle drei Spezialgebiete der eben erwähnten Einzelbände zusammen. Vom Preis her ist der Band jedoch erfreulicherweise wesentlich kostengünstiger, als die drei Bände in dem Einzelkauf! Der einizge Nachteil:... |
Weiteres zu dem Artikel C-Plusplus |
| Andere Leser interessierten sich auch für folgende Beschreibungen: | Barbara, Besitz, Borland, Entwurfsmuster, Funktion, Iso, Kompilieren, Linux, Microsoft, Prozessor, Syntax | | Schnellzugrif auf verwandte Texte: | | | NEU! Frage im Forum zum Thema: | | Wenn die Beschreibung 'C-Plusplus' Ihrer Meinung nach nicht korrekt ist oder in aktueller Version Fehler enthalten sind oder es fehlt die C-Plusplus Definition, dann klicken Sie bitte auf "Beschreibung bearbeiten" und schreiben Sie die Eigene Version des Textes. Die Änderungen in der Beschreibung werden sofort aktiv und für alle sichtbar. Ein Administrator wird Ihre Version der Beschreibung und Definition von 'C-Plusplus' nachher prüfen. Bitte achten Sie auf die Urheberrechte (Copyright). Wir sind für die besseren Beschreibung von 'C-Plusplus' und 'C-Plusplus' Definition sehr dankbar.
Alle Tipps zu den Bücher auf dieser Seite wurden automatisch generiert. D.h. die Bücher wurden aus einer Datenbank von dem Computer ausgesucht. Deshalb kann es vorkommen, dass vorgeschlagene Bücher nicht ganz der 'C-Plusplus' Beschreibung entsprechen.
|
|
· Diese Seite wurde bisher 2.752 mal abgerufen. · Letzte Counteraktualisierung erfolgte am 16.05.2008 um 18:57:47 · Diese Seite wurde zuletzt geändert um 12:25, 2. Okt 2004. · Letzte Portalaktualisierung erfolgte um 08:00:00 GMT, 25.02.2008
|