Die Sprache C++ – cppreference.com
Aus cppreference.com
Dies ist eine kurze Referenz der verfügbaren C++-Sprachkonstrukte.
Allgemeine Themen
Präprozessor
Kommentare
Schlüsselworte
ASCII-Tabelle
Escape-Sequenzen
Geschichte von C++
Flusskontrolle
Auswahlanweisungen
In Auswahlanweisungen werden, je nach Wert des zu prüfenden Ausdrucks, verschiedene Code-Pfade durchlaufen.
Iterationsanweisungen
Iterationsanweisungen führen Code innerhalb eines Pfades mehrfach aus.
- for führt Schleifen mithilfe der Angabe eines Indexes, einer Bedingung und einer Schrittweite aus
- range-for führt Iterationen über einen Bereich aus.(seit C++11)
- while führt eine Schleife aus, bei der vor jeder Iteration eine Bedingung überprüft wird
- do-while führt eine Schleife aus, bei der eine Bedingung nach jeder Iteration überprüft wird
Sprunganweisungen
Sprunganweisungen setzen die Programmausführung an einer anderen Stelle fort
- continue überspringt den restlichen Code innerhalb des Codeblocks einer Schleife
- break beendet die aktuelle Schleife
- goto setzt die Ausführung an einem anderen Ort fort
- return beendet die Ausführung der aktuellen Funktion
Funktionen
Derselbe Code kann an verschiedenen Stellen im Programm verwendet werden
- Funktions-Deklarationen deklarieren Funktionen
- Lambda-Funktionen anonyme Funktionen (seit C++11)
- Funktions-Templates Vorlagen für Funktionen
- inline-Funktionen Funktionen, deren Body vom Compiler direkt in den Quelltext eingefügt wird.
- Exception-Spezifikationen legen fest, welche Exceptions von einer Funktion ausgelöst werden können. (veraltet)
- Der noexcept-Bezeichner legt fest, ob eine Funktion Ausnahmen auslösen kann. (seit C++11)
Ausnahmen
Ausnahmen sind im Gegensatz zu Rückgabewerten oder globalen Fehlervariablen ein robuster Weg, um Fehler zu signalisieren.
- throw signalisiert einen Fehler und übergibt die Steuerung des Programms an einen Exception-Handler
- try-catch-Blöcke fangen Ausnahmen aus bestimmten Code-Blöcken ab
- noexcept-Bezeichner und noexcept-Operatoren definieren und testen, ob Ausdrücke Ausnahmen auslösen (seit C++11)
Namensräume
Namensräume bieten eine Möglichkeit, um Namenskonflikte in großen Projekten zu verhindern.
- Namespace-Deklarationen deklarieren Namensräume
- Namespace-Alias Alternativer Name für einen bestehenden Namensraum
Typen
- Fundamentale Typen einfache Character-, Integer- und Fließkomma-Typen
- Zeigertypen Typen, die auf eine Adresse im Speicher zeigen
- Zusammengesetzte Typen Typen, die verschiedene Datenelemente beinhalten (im Wesentlichen das gleiche wie Klassen)
- Aufzählungstypen Typen, die in der Lage sind, nur eine der vorgegebenen Werte zu beinhalten
- union-Typen Typen, die Daten in mehreren Darstellungen speichern können
- Funktionstypen Funktionssignaturen, d.h. die Art der Argumente und den Rückgabe-Typ
- decltype-Bezeichner legt fest, dass ein Typ dem Typ eines spezifischen Ausdrucks entspricht (seit C++11)
Bezeichner
- cv gibt an, ob es sich um einen konstanten und/oder einen flüchtigen Typen handelt
- storage_duration gibt an, wie lang der Typ gespeichert wird
- constexpr gibt an, dass der Wert einer Variable oder Funktion zur Kompilierzeit berechnet werden kann (seit C++11)
- auto gibt an, dass der eigentliche Typ, der einer Variablen zugewiesen werden soll, auf einem Ausdruck basiert (seit C++11)
- alignas gibt an, dass der Speicher für die Variable auf eine bestimmte Menge festgelegt wird (seit C++11)
Initialisierung
Immer wenn eine benannte Variable deklariert ist, und wenn immer eine temporäre Objekt erzeugt wird, der Startwert des neuen Aufgabe wird durch einen der folgenden Mechanismen bereitgestellt:
Original:
Whenever a named variable is declared, and whenever a temporary object is created, the initial value of the new object is provided through one of the following mechanisms:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Literale
Literale sind die Zeichen einer C++-Programm, das konstante Werte im Quellcode eingebettet stellen .
Original:
Literals are the tokens of a C++ program that represent constant values, embedded in the source code.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
nullptr ist der Zeiger wörtliche, die eine Null-Zeiger-Wert (seit C++11) angibt
Original:
nullptr is the pointer literal which specifies a null pointer value (seit C++11)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Expressions
Ein Ausdruck ist eine Folge von Operatoren und Operanden, die eine Berechnung angibt. Ein Ausdruck kann in einem Wert führen und kann Nebenwirkungen verursachen .
Original:
An expression is a sequence of operators and operands that specifies a computation. An expression can result in a value and can cause side effects.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
operators erlauben die Verwendung der Syntax in der Mathematik allgemein gefunden
Original:
operators allow the use of syntax commonly found in mathematics
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
| Common operators | ||||||
|---|---|---|---|---|---|---|
| Zuweisungen | incrementNJdecrement | Arithmetik | logisch | Vergleich | memberNJaccess | andererseits |
|
|
|
|
|
|
|
|
| Special operators | ||||||
|
static_cast
wandelt einem Typ in einen anderen kompatiblen Typ Original: static_cast converts one type to another compatible type The text has been machine-translated via Google Translate. dynamic_cast
wandelt virtuellen Basisklasse abgeleitet class Original: dynamic_cast converts virtual base class to derived class The text has been machine-translated via Google Translate. const_cast
wandelt Typ kompatiblen Typ mit unterschiedlichen cv qualifiers Original: const_cast converts type to compatible type with different cv qualifiers The text has been machine-translated via Google Translate. reinterpret_cast
wandelt Typ inkompatibel type Original: reinterpret_cast converts type to incompatible type The text has been machine-translated via Google Translate. new
ordnet memory Original: new allocates memory The text has been machine-translated via Google Translate. delete
freigibt memory Original: delete deallocates memory The text has been machine-translated via Google Translate. sizeof
fragt die Größe eines type Original: sizeof queries the size of a type The text has been machine-translated via Google Translate. sizeof...
fragt die Größe eines Parameter Pack (seit C++11) Original: sizeof... queries the size of a Parameter Pack (seit C++11) The text has been machine-translated via Google Translate. typeid
fragt die Typinformationen eines type Original: typeid queries the type information of a type The text has been machine-translated via Google Translate. noexcept
prüft, ob ein Ausdruck eine Ausnahme (seit C++11) Original: noexcept checks if an expression can throw an exception (seit C++11) The text has been machine-translated via Google Translate. alignof
Abfragen Ausrichtungsanforderungen eines Typs (seit C++11) Original: alignof queries alignment requirements of a type (seit C++11) The text has been machine-translated via Google Translate. | ||||||
Utilities
; Types
Original:
; Types
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
; Casts
Original:
; Casts
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
const_castKonvertierungOriginal:
const_castconversionThe text has been machine-translated via [http://translate.google.com Google Translate].
You can help to correct and verify the translation. Click [http://en.cppreference.com/w/Cppreference:MachineTranslations here] for instructions.static_castKonvertierungOriginal:
static_castconversionThe text has been machine-translated via [http://translate.google.com Google Translate].
You can help to correct and verify the translation. Click [http://en.cppreference.com/w/Cppreference:MachineTranslations here] for instructions.dynamic_castKonvertierungOriginal:
dynamic_castconversionThe text has been machine-translated via [http://translate.google.com Google Translate].
You can help to correct and verify the translation. Click [http://en.cppreference.com/w/Cppreference:MachineTranslations here] for instructions.reinterpret_castKonvertierungOriginal:
reinterpret_castconversionThe text has been machine-translated via [http://translate.google.com Google Translate].
You can help to correct and verify the translation. Click [http://en.cppreference.com/w/Cppreference:MachineTranslations here] for instructions.
, Speicherbelegung
Original:
; Memory allocation
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Klassen
Klassen stellen das Konzept der objektorientierten Programmierung in C++.
Original:
Classes provide the concept of object-oriented programming in C++.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Class-spezifische Funktion Eigenschaften
Besondere Member-Funktionen
Templates
Ermöglicht Funktionen und Klassen auf generische Typen zu betreiben
Original:
Allows functions and classes to operate on generic types
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.