kennen:keywords
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
— | kennen:keywords [2020-07-18 12:24] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Schlüsselwörter ====== | ||
+ | > Dinge, die erst erklärt werden müssen, sind oft der Erklärung nicht wert. | ||
+ | >> | ||
+ | |||
+ | Schlüsselwörter sind reservierte Bezeichner mit vordefinierter Bedeutung. | ||
+ | Sie können nicht als Namen für Variablen, Funktionen, Klassen usw. benutzt werden. | ||
+ | Darüber hinaus sind die Operatornamen | ||
+ | |||
+ | <code cpp> | ||
+ | not | ||
+ | and && | ||
+ | or || bitor | or_eq |= | ||
+ | xor ^ xor_eq | ||
+ | </ | ||
+ | für einige [[operator# | ||
+ | wie Schlüsselwörter zu behandeln. | ||
+ | Nur an bestimmten Stellen haben die Bezeichner | ||
+ | [[.: | ||
+ | [[.: | ||
+ | [[.: | ||
+ | [[.: | ||
+ | besondere Bedeutung. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== alphabetisch ===== | ||
+ | <WRAP col5> | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | ===== nach Aufgaben ===== | ||
+ | Schlüsselwörter der Sprache C sind durch einen nachfolgenden Stern * gekennzeichnet, | ||
+ | ¹[[begriffe# | ||
+ | °[[begriffe# | ||
+ | |||
+ | | Grunddatentypen | Wahrheitswerte | ||
+ | | | Zeichen und Zahlen | [[#char]]*, [[# | ||
+ | | | Zahlen | ||
+ | | | weitere | ||
+ | | Modifizierer für| Platzbedarf | ||
+ | | | Vorzeichen | ||
+ | | | Veränderbarkeit | ||
+ | | | Lebensdauer / Ort | [[# | ||
+ | | Zusammengesetzte Typen | Klassen & Strukturen | [[#class]], [[# | ||
+ | | | Zugriffsrechte | ||
+ | | Concepts | ||
+ | | Typinformation | ||
+ | | Typumwandlung | ||
+ | | Ablaufsteuerung | Schleifen | ||
+ | | | Verzweigungen | ||
+ | | | Sprünge | ||
+ | | | Ausnahmebehandlung | [[#catch]], [[# | ||
+ | | | Couroutinen | ||
+ | | Assemblercode | ||
+ | | Freispeicher | ||
+ | | Funktionen | ||
+ | | Namensbereiche | ||
+ | | Modularisierung | | [[# | ||
+ | | Schablonen | ||
+ | | reserviert | ||
+ | |||
+ | Aufgeführte Jahreszahlen geben den Zeitpunkt der Einführung bzw. Bedeutungsänderung im Sprachstandard (C++ ISO 14882) an. | ||
+ | ===== Erläuterungen ===== | ||
+ | ==== alignas ==== | ||
+ | C++11 : Die Ausrichtung von Elementen an Adressgrenzen von 1, 2, 4, 8, ... Byte ist von Bedeutung, wenn Daten über Plattformgrenzen transportiert werden, z.B. von CPU zu GPUs. | ||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[# | ||
+ | |||
+ | ==== alignof ==== | ||
+ | C++11 : liefert Abstand aufeinander folgender (Feld-)Elemente dieses Typs in Byte. | ||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[# | ||
+ | |||
+ | ==== asm ==== | ||
+ | C++ : Das Schlüsselwort '' | ||
+ | in Funktionen. Die Bedeutung ist plattform- und implementierungsabhängig. | ||
+ | (Mit anderen Worten: Wer es benutzt, sollte vorher genau wissen, was er tut.) | ||
+ | |||
+ | ==== auto ==== | ||
+ | C : Das Schlüsselwort '' | ||
+ | aus der Programmiersprache [[begriffe# | ||
+ | zur Kennzeichnung von automatisch angelegten und beseitigten Variablen | ||
+ | im Gegensatz zu statischen ([[# | ||
+ | Der (veraltete) Variablen-Modifizierer wird kaum noch benutzt. | ||
+ | Falls nicht anders gekennzeichnet, | ||
+ | |||
+ | C++03 : geächtet | ||
+ | |||
+ | C++11 : Der Typ wird bei der Definition einer Variable automatisch aus dem zugewiesenen Wert erschlossen (type inference). | ||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | - | Beispiel [[.beispiel: | ||
+ | |||
+ | |||
+ | |||
+ | ==== bool ==== | ||
+ | C++98 : Der '' | ||
+ | und [[#false]] | ||
+ | auf. Bei der Zuweisung aus anderen Typen wird Null zu '' | ||
+ | jeder andere Wert zu '' | ||
+ | und [[begriffe# | ||
+ | werden mit logischen Ausdrücken gesteuert. | ||
+ | Die zweiwertige [[begriffe# | ||
+ | ist nach George Boole benannt. | ||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#false]], [[#true]]| [[.: | ||
+ | |||
+ | ==== break ==== | ||
+ | C, C++ : Das Schlüsselwort '' | ||
+ | [[begriffe# | ||
+ | ([[# | ||
+ | [[begriffe# | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#case]], [[# | ||
+ | | | [[# | ||
+ | |||
+ | ==== case ==== | ||
+ | C, C++ : Das Schlüsselwort '' | ||
+ | markiert einen Einsprungpunkt im Anweisungsblock einer | ||
+ | [[begriffe# | ||
+ | Nur ganzzahlige Konstanten sind erlaubt, jeder Wert muss einzeln aufgeführt werden. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#break]], [[# | ||
+ | |||
+ | ==== catch ==== | ||
+ | C++98 : | ||
+ | Mit dem Schlüsselwort '' | ||
+ | [[begriffe# | ||
+ | Es darf nur im Anschluss an einen [[# | ||
+ | die direkt oder indirekt eine [[begriffe# | ||
+ | werfen ([[# | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#throw]], [[#try]]| [[.: | ||
+ | |||
+ | ==== char ==== | ||
+ | C, C++ : Der Grunddatentyp '' | ||
+ | --- Vorsicht! Das Byte wird als [[# | ||
+ | |||
+ | Ob die Zeichen intern den Zahlenwerten 0..255 (vorzeichenlos) | ||
+ | oder -128..127 (vorzeichenbehaftet) zugeordnet werden, | ||
+ | hängt von den Compiler-Einstellungen ab. | ||
+ | Welche Nummer welches Zeichen darstellt, ist maschinen- und systemabhängig. | ||
+ | So hat der Großbuchstabe ' | ||
+ | auf Maschinen mit EBCDIC-Zeichensatz (entpackt) jedoch die Nummer 193. | ||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[# | ||
+ | |||
+ | ==== char16_t ==== | ||
+ | C++11 : Zeichentyp mit 16 bit Breite. | ||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#char]], [[# | ||
+ | |||
+ | ==== char32_t ==== | ||
+ | C++11 : Zeichentyp mit 32 bit Breite. | ||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#char]], [[# | ||
+ | |||
+ | ==== class ==== | ||
+ | C++ : Das Schlüsselwort '' | ||
+ | ein. Klassen und Strukturen ([[# | ||
+ | mit einer Ausnahme: Das voreingestellte [[begriffe# | ||
+ | einer Klasse ist [[# | ||
+ | Mit Klassen wird das Typsystem für objektorientiertes Programmieren aufgebaut. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[# | ||
+ | |||
+ | |||
+ | ==== co_await ==== | ||
+ | C++20: | ||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | [[kennen: | ||
+ | |||
+ | ==== co_return ==== | ||
+ | C++20: | ||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | [[kennen: | ||
+ | |||
+ | ==== co_yield ==== | ||
+ | C++20: | ||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | [[kennen: | ||
+ | |||
+ | ==== concept ==== | ||
+ | C++20: ein zur Übersetzungszeit auswertbares [[.: | ||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | [[kennen: | ||
+ | |||
+ | ==== const ==== | ||
+ | C, C++ : Mit dem Schlüsselwort '' | ||
+ | werden als unveränderlich betrachtet. Zumindest behindert '' | ||
+ | Wertänderung über den nachfolgenden Bezeichner.\\ | ||
+ | |||
+ | In C++ können auch [[begriffe# | ||
+ | mit '' | ||
+ | ([[begriffe# | ||
+ | Solche Methoden ändern die Attributwerte | ||
+ | des aufrufenden Objektes nicht.\\ | ||
+ | |||
+ | Bei '' | ||
+ | |||
+ | Der richtige und konsequente Einsatz (const correctness) | ||
+ | trägt zur Verbesserung der Softwarequalität bei. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[# | ||
+ | |||
+ | ==== const_cast ==== | ||
+ | C++98 : Ein '' | ||
+ | ist eine auffällige Form eines [[begriffe# | ||
+ | bei dem das Schreibschutzsystem für Variablen ([[# | ||
+ | bewusst ausgehebelt wird. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[# | ||
+ | |||
+ | |||
+ | |||
+ | ==== consteval ==== | ||
+ | C++20: [[# | ||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[# | ||
+ | |||
+ | ==== constexpr ==== | ||
+ | C++11 : markiert Ausdruck, dessen Auswertung zur Übersetzungszeit erfolgen kann, sofern seine Bestandteile ebenfalls vom Übersetzer bestimmt werden können. | ||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#const]], [[# | ||
+ | |||
+ | ==== constinit ==== | ||
+ | C++20: Variable wird zur Übersetzungszeit initialisiert. | ||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[# | ||
+ | |||
+ | ==== continue ==== | ||
+ | C, C++ : Das Schlüsselwort '' | ||
+ | die Anweisungen bis zum Ende eines Schleifenblockes zu überspringen. | ||
+ | Die [[begriffe# | ||
+ | wird dadurch nicht abgebrochen (s. [[# | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#break]], [[# | ||
+ | |||
+ | ==== decltype ==== | ||
+ | C++11 : erschließt Typ eines Ausdrucks (type inference), | ||
+ | nützlich vor allem bei der Definition von [[begriffe# | ||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[.beispiel: | ||
+ | |||
+ | ==== default ==== | ||
+ | C, C++ : Der mit '' | ||
+ | in einer [[begriffe# | ||
+ | ([[# | ||
+ | wenn keiner der einzeln aufgeführten Fälle ([[#case]]) zutrifft. | ||
+ | |||
+ | C++11 : Ein '' | ||
+ | [[begriffe# | ||
+ | einer [[begriffe# | ||
+ | wird vom Compiler mit dem Standardverhalten implementiert. | ||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[# | ||
+ | | | [[#class]], [[# | ||
+ | ==== delete ==== | ||
+ | C++ : Der Operator '' | ||
+ | der mit [[#new]] | ||
+ | angefordert wurde. | ||
+ | Nach der Freigabe darf auf den Speicher nicht mehr zugegriffen werden. | ||
+ | Die hinterlegte Adresse sollte gelöscht werden, | ||
+ | um unabsichtliche Zugriffe über " | ||
+ | |||
+ | C++11 : Eine '' | ||
+ | [[begriffe# | ||
+ | einer [[begriffe# | ||
+ | wird vom Compiler nicht implementiert, | ||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#new]], [[# | ||
+ | | | [[#class]], [[# | ||
+ | ==== do ==== | ||
+ | C, C++ : Das Schlüsselwort '' | ||
+ | [[begriffe# | ||
+ | ein. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#while]]| [[.: | ||
+ | |||
+ | ==== double ==== | ||
+ | C, C++ : Der Grunddatentyp '' | ||
+ | erhöhter Zahl bedeutsamer Stellen (" | ||
+ | und erweitertem Exponentenbereich auf. | ||
+ | Die Typbezeichnung '' | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#float]]| [[.: | ||
+ | |||
+ | ==== dynamic_cast ==== | ||
+ | C++98 : Ein '' | ||
+ | ist eine auffällige Form eines [[begriffe# | ||
+ | für den " | ||
+ | bei dem geprüft wird, ob ein Objekt die Schnittstelle einer | ||
+ | [[begriffe# | ||
+ | anbieten kann. | ||
+ | Kann die Umwandlung nicht vorgenommen werden, wird bei Zeigern ein NULL-Zeiger geliefert, | ||
+ | bei Referenzen eine '' | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[# | ||
+ | ==== else ==== | ||
+ | C, C++ : Das Schlüsselwort '' | ||
+ | [[begriffe# | ||
+ | ein. Davor muss eine [[# | ||
+ | Bei mehreren vorangehenden '' | ||
+ | stets an das unmittelbar vorherige '' | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#if]]| [[.: | ||
+ | |||
+ | ==== enum ==== | ||
+ | C, C++ : Mit '' | ||
+ | und diesen Werte aus einer Liste von ganzzahligen Konstanten zugeordnet. | ||
+ | |||
+ | C++11 : Als '' | ||
+ | Sie werden nicht implizit in Ganzzahlen umgewandelt. | ||
+ | Der darunterliegende Ganzzahltyp kann explizit und im Voraus festgelegt werden: '' | ||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#const]]| [[.: | ||
+ | |||
+ | |||
+ | ==== explicit ==== | ||
+ | C++98 : | ||
+ | Das Schlüsselwort '' | ||
+ | vor einem [[begriffe# | ||
+ | mit nur einem Parameter erzwingt, dass dieser Konstruktor zur Typumwandlung | ||
+ | im Quelltext ausgeschrieben werden muss. | ||
+ | Das verhindert die unabsichtliche automatische (implizite) | ||
+ | Typumwandlung einzelner Werte bei Zuweisungen. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#class]]| [[.: | ||
+ | |||
+ | ==== export ==== | ||
+ | C++11 : für künftige Bedeutungen reserviert. | ||
+ | |||
+ | C++20 : [[.: | ||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | ||
+ | |||
+ | ==== extern ==== | ||
+ | C, C++ : Das Schlüsselwort '' | ||
+ | dass die deklarierte Variable oder Funktion anderswo, | ||
+ | möglicherweise in einer anderen Quelltextdatei definiert wird. | ||
+ | |||
+ | Funktionen haben stets externe Bindung, sofern sie nicht als [[#static]] | ||
+ | markiert sind. | ||
+ | |||
+ | Bei Funktionen kann die externe Bindung für andere Programmiersprachen | ||
+ | festgelegt werden. | ||
+ | Das ist u.a. dann nötig, wenn mit C++ übersetzte Funktionen | ||
+ | in ein C-Programm eingebunden werden sollen. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[# | ||
+ | |||
+ | ==== false ==== | ||
+ | C++98 : Der Wahrheitswert '' | ||
+ | Er dient als Ergebniswert bei nicht erfülltem logischem Test. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#bool]], [[#true]]| [[.: | ||
+ | |||
+ | |||
+ | ==== float ==== | ||
+ | C, C++ : Der Grunddatentyp '' | ||
+ | mit " | ||
+ | Typisch sind 6 oder 7 Dezimalstellen vertrauenswürdig. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[# | ||
+ | |||
+ | ==== for ==== | ||
+ | C, C++ : Das Schlüsselwort '' | ||
+ | [[begriffe# | ||
+ | ein. Im Steuerteil der for-Anweisung gibt es einen Ausdruck für Startwerte, | ||
+ | eine Durchführungs-[[begriffe# | ||
+ | und den nach jedem Durchlauf auszuwertenden Ausdruck für den Schleifenschritt. | ||
+ | Jede '' | ||
+ | umgeschrieben werden. | ||
+ | |||
+ | C++11 : Die //range based for// | ||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#while]]| [[.: | ||
+ | | | ||
+ | |||
+ | ==== friend ==== | ||
+ | C++ : Mit dem Schlüsselwort '' | ||
+ | eine andere Klasse oder eine Funktion zum Freund. | ||
+ | Dem Freund wird der Zugriff auf nicht-öffentliche Bestandteile der Klasse erlaubt. | ||
+ | Es spielt keine Rolle, ob die Freund-Deklaration in einem öffentlichen oder | ||
+ | nicht-öffentlichen Abschnitt der Klassendefinition steht. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[# | ||
+ | |||
+ | ==== goto ==== | ||
+ | C, C++ : Mit dem Schlüsselwort '' | ||
+ | angewiesen. | ||
+ | Sprünge sind in C und C++ nur eingeschränkt möglich. | ||
+ | Sie dürfen nur innerhalb einer Funktion stattfinden. | ||
+ | Ein Sprung darf keine Variablendefinition überspringen. | ||
+ | Bis auf wenige, komplizierte Situationen kann '' | ||
+ | durch strukturiertere Sprachmittel ([[begriffe# | ||
+ | oder [[begriffe# | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#do]], [[#else]], [[#if]], [[#for]], [[#while]]| [[.: | ||
+ | |||
+ | ==== if ==== | ||
+ | C, C++ : Das Schlüsselwort '' | ||
+ | [[begriffe# | ||
+ | Nach der zu erfüllenden [[begriffe# | ||
+ | und dem " | ||
+ | muss aber nicht. | ||
+ | Mit if-else-if-Leitern und [[# | ||
+ | [[begriffe# | ||
+ | realisiert werden. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#else]], [[# | ||
+ | |||
+ | ==== inline ==== | ||
+ | C++ : Als '' | ||
+ | [[begriffe# | ||
+ | vermeiden beim Aufruf den Aufwand eines Funktionsaufrufes | ||
+ | (Parameterübergabe, | ||
+ | Stapelausrichtung, | ||
+ | Für Funktionen mit sehr wenigen Anweisungen kann sich daraus ein | ||
+ | Geschwindigkeitsgewinn ergeben. | ||
+ | Gleichzeitig wird die Typprüfung vollständig durchgeführt. | ||
+ | Deshalb sind '' | ||
+ | [[begriffe# | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | - | [[.: | ||
+ | |||
+ | ==== int ==== | ||
+ | C, C++ : Der Grunddatentyp '' | ||
+ | Die Speicherbreite eines '' | ||
+ | Prozessors. | ||
+ | Je nach Zielsystem können das 16 bit, 32 bit oder auch (demnächst) 64 bit sein. | ||
+ | Durch vorangestellte Modifizierer kann der Datentyp variiert werden: | ||
+ | |||
+ | |||
+ | * [[# | ||
+ | * [[# | ||
+ | * [[# | ||
+ | Damit ist auch der [[begriffe# | ||
+ | systemabhängig. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#long]], [[#short]], [[# | ||
+ | |||
+ | ==== long ==== | ||
+ | C, C++ : Der Modifizierer '' | ||
+ | und [[#double]] | ||
+ | zulässig. Je nach System wird dadurch ein Typ mit größerem Speicherplatzbedarf | ||
+ | und erweitertem [[begriffe# | ||
+ | angegeben. | ||
+ | Nicht jede Kombination ergibt jedoch einen neuen Typ, | ||
+ | z. B. ist '' | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[# | ||
+ | |||
+ | ==== mutable ==== | ||
+ | C++98 : | ||
+ | Als '' | ||
+ | [[begriffe# | ||
+ | einer [[begriffe# | ||
+ | können sich selbst dann ändern, wenn das [[begriffe# | ||
+ | als konstant markiert ist oder eine konstante [[begriffe# | ||
+ | abgearbeitet wird. | ||
+ | Mit anderen Worten: '' | ||
+ | Weil das schlecht ist, sollten zuvor andere Wege geprüft werden. | ||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#class]], [[#const]]| [[.: | ||
+ | |||
+ | ==== namespace ==== | ||
+ | C++98 : | ||
+ | Das Schlüsselwort '' | ||
+ | die Verschmutzung des globalen | ||
+ | [[begriffe# | ||
+ | mit Bezeichnern einzuschränken. | ||
+ | Kollisionen zwischen gleichartigen Bezeichnern in Bibliotheken | ||
+ | unterschiedlicher Hersteller werden dadurch vermieden. | ||
+ | Der Nutzer kann entscheiden, | ||
+ | |||
+ | * mit dem Schlüsselwort [[#using]] einen ganzen Namensraum oder | ||
+ | * nur einzelne Bezeichner importieren oder | ||
+ | * die Bezeichner voll qualifiziert mit vorangestelltem Namensraumbezeichner ansprechen will. | ||
+ | |||
+ | Alle Bezeichner der C++-Standard-Bibliothek befinden sich im Namensraum '' | ||
+ | Im namenlosen Namensraum '' | ||
+ | werden Bezeichner untergebracht, | ||
+ | zugreifbar sein sollen. (Der Einsatz von [[#static]] | ||
+ | für diesen Zweck ist wie in C möglich, | ||
+ | wird jedoch im Standard ISO 14882:1998 missbilligt.) | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#using]]| [[.: | ||
+ | |||
+ | ==== new ==== | ||
+ | C++ : Der Operator '' | ||
+ | Bei Erfolg liefert der Operator einen Zeiger | ||
+ | auf einen vom System geborgten Speicherbereich. | ||
+ | Der Speicherplatz muss irgendwann (genau einmal!) mit [[#delete]] | ||
+ | wieder zurückgegeben werden. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[# | ||
+ | |||
+ | ==== noexcept ==== | ||
+ | C++11 : Die Angabe '' | ||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#catch]], [[#throw]]| [[.: | ||
+ | |||
+ | ==== nullptr ==== | ||
+ | C++11 : Wert für nicht zugewiesene Zeiger. | ||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[# | ||
+ | |||
+ | ==== operator ==== | ||
+ | C++ : [[operator# | ||
+ | sind über das Schlüsselwort '' | ||
+ | auch als Funktionen ansprechbar. | ||
+ | Viele Operatoren lassen sich | ||
+ | [[operator# | ||
+ | d.h. für neue, selbst definierte Datentypen | ||
+ | ([[begriffe# | ||
+ | und [[begriffe# | ||
+ | mit einer eigenständigen Bedeutung neu festlegen. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#class]], [[# | ||
+ | |||
+ | ==== private ==== | ||
+ | C++ : In als '' | ||
+ | [[begriffe# | ||
+ | aufgeführte Bestandteile einer [[begriffe# | ||
+ | können nur in Methoden dieser Klasse benutzt werden.\\ | ||
+ | |||
+ | Private (heimliche) [[begriffe# | ||
+ | macht die Schnittstelle einer [[begriffe# | ||
+ | nur innerhalb der abgeleiteten Klasse nutzbar. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[# | ||
+ | | | [[#class]], [[# | ||
+ | |||
+ | ==== protected ==== | ||
+ | C++ : In als '' | ||
+ | einer [[begriffe# | ||
+ | aufgeführte Bestandteile einer [[begriffe# | ||
+ | können nur in Methoden dieser und abgeleiteter Klassen benutzt werden.\\ | ||
+ | |||
+ | Geschützte [[begriffe# | ||
+ | macht die Schnittstelle und die geschützten Bestandteile | ||
+ | einer [[begriffe# | ||
+ | innerhalb der abgeleiteten Klasse nutzbar. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[# | ||
+ | | | [[#class]], [[# | ||
+ | |||
+ | ==== public ==== | ||
+ | C++ : In als '' | ||
+ | einer [[begriffe# | ||
+ | aufgeführte Bestandteile einer [[begriffe# | ||
+ | sind öffentlich zugänglich.\\ | ||
+ | |||
+ | Durch öffentliche [[begriffe# | ||
+ | können Objekte auch als Objekte | ||
+ | der [[begriffe# | ||
+ | angesprochen werden. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[# | ||
+ | | | [[#class]], [[# | ||
+ | |||
+ | ==== register ==== | ||
+ | C : Der Modifizierer '' | ||
+ | eine häufig genutzte Variable im Prozessorregister zu halten statt im Hauptspeicher. | ||
+ | Eine solche Optimierung kann z.B. für die innerste Schleife einen Geschwindigkeitsvorteil bringen. | ||
+ | |||
+ | C++11 : Die Nutzung des Schlüsselwortes ist nun geächtet. | ||
+ | |||
+ | C++17 : Das Schlüsselwort wird nicht mehr benutzt, bleibt aber reserviert. | ||
+ | |||
+ | ==== reinterpret_cast ==== | ||
+ | C++98 : | ||
+ | Ein '' | ||
+ | [[begriffe# | ||
+ | mit dem die Bitfolge eines Ausdruckswertes völlig anders interpretiert wird. | ||
+ | Diese andere Interpretation ist systemabhängig, | ||
+ | z. B. können die Bytes von Ganzzahlen auf verschiedenen Systemen | ||
+ | in unterschiedlicher Reihenfolge abgespeichert sein | ||
+ | (little endian, big endian). | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[# | ||
+ | |||
+ | ==== requires ==== | ||
+ | C++20: stellt eine Anforderung an [[.: | ||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | [[kennen: | ||
+ | |||
+ | ==== return ==== | ||
+ | C, C++ : Mit dem Schlüsselwort '' | ||
+ | Rückkehr-[[begriffe# | ||
+ | aus einer [[begriffe# | ||
+ | eingeleitet. Hat die Funktion nicht den Ergebnistyp [[#void]], | ||
+ | sollte nach '' | ||
+ | Anweisungen hinter der Rückkehranweisungen werden nicht abgearbeitet. | ||
+ | Die Funktion wird mit der '' | ||
+ | Die Kontrolle wird an das Programmteil zurückgegeben, | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | - | [[.: | ||
+ | |||
+ | ==== short ==== | ||
+ | C, C++ : Der Modifizierer '' | ||
+ | gibt einen Typ mit geringeren Speicherplatzbedarf | ||
+ | und kleinerem [[begriffe# | ||
+ | an. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#int]], [[#long]]| [[.: | ||
+ | |||
+ | ==== signed ==== | ||
+ | C, C++ : Der Typmodifizierer '' | ||
+ | und [[#int]] | ||
+ | sowie auf dessen Modifikationen [[#short]] | ||
+ | und [[#long]] | ||
+ | anwendbar. Der Typ wird als vorzeichenbehaftet interpretiert. | ||
+ | Auf Systemen mit binärem Datenspeicher ist damit | ||
+ | der größte darstellbare Wert nur etwa halb so groß | ||
+ | wie beim vorzeichenlosen ([[# | ||
+ | dafür gibt es aber auch negative Werte. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#char]], [[#int]], [[# | ||
+ | |||
+ | ==== sizeof ==== | ||
+ | C, C++ : Mit dem Operator '' | ||
+ | von Typen und Variablen bestimmen. | ||
+ | Die Größenangabe erfolgt in Byte. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[# | ||
+ | |||
+ | ==== static ==== | ||
+ | C, C++ : Das Schlüsselwort '' | ||
+ | |||
+ | - Statische lokale Variablen in [[begriffe# | ||
+ | - Eine statische Variable in einer [[begriffe# | ||
+ | - Statische [[begriffe# | ||
+ | - Statische globale Funktionen und statische globale Variablen sind auf die Übersetzungseinheit (Quelltextdatei) beschränkt gültig. Solche Bezeichner sind für [[# | ||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#auto]], [[# | ||
+ | ==== static_assert ==== | ||
+ | C++11 : Das neue Schlüsselwort '' | ||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | - | [[.: | ||
+ | |||
+ | ==== static_cast ==== | ||
+ | C++98 : | ||
+ | Ein '' | ||
+ | [[begriffe# | ||
+ | mit dem eine zulässige Typumwandlung durchgeführt wird. | ||
+ | Der Effekt ist derselbe wie das Anlegen und Initialisieren | ||
+ | einer temporären Variable vom Zieltyp. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[# | ||
+ | |||
+ | ==== struct ==== | ||
+ | C, C++ : Das Schlüsselwort '' | ||
+ | Definition eines Verbunddatentyps | ||
+ | ([[begriffe# | ||
+ | der Daten unterschiedlicher Typen bündelt. | ||
+ | In C++ dürfen Strukturen, anders als in C, auch | ||
+ | [[begriffe# | ||
+ | enthalten. Damit sind Klassen ([[# | ||
+ | und Strukturen gleichwertig mit einer Ausnahme: | ||
+ | Das voreingestellte [[begriffe# | ||
+ | einer Struktur ist [[# | ||
+ | |||
+ | Seltener wird der Verbundtyp genutzt, um Teile einer Ganzzahl als | ||
+ | [[begriffe# | ||
+ | anzusprechen. Dieses Merkmal ist implementationsabhängig. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#class]]| [[.: | ||
+ | | | ||
+ | |||
+ | ==== switch ==== | ||
+ | C, C++ : Der ganzzahlige Ausdruck nach dem Schlüsselwort '' | ||
+ | entscheidet, | ||
+ | [[begriffe# | ||
+ | abgearbeitet wird. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#break]], [[#case]], [[# | ||
+ | | | [[#else]], [[#if]]| [[.: | ||
+ | |||
+ | ==== template ==== | ||
+ | C++ : Als Schablonen (engl. templates) definierte | ||
+ | [[begriffe# | ||
+ | und [[begriffe# | ||
+ | lassen Typen oder auch ganzzahlige Konstanten bis zur Nutzung offen. | ||
+ | Die Typ-Parametrisierung im generischen | ||
+ | [[begriffe# | ||
+ | stellt eine statische Form von | ||
+ | [[begriffe# | ||
+ | dar. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[# | ||
+ | |||
+ | ==== this ==== | ||
+ | C++: Jedes [[begriffe# | ||
+ | kennt seine eigene Speicheradresse. | ||
+ | In Methoden kann mit dem Zeiger '' | ||
+ | auf das ausführende Objekt verwiesen werden. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | - | [[.: | ||
+ | |||
+ | ==== thread_local ==== | ||
+ | C++11 : Im Gegensatz zu '' | ||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[# | ||
+ | ==== throw ==== | ||
+ | C++98 : Das Schlüsselwort '' | ||
+ | dient dazu, eine [[begriffe# | ||
+ | zu [[ausnahmen# | ||
+ | |||
+ | Eine '' | ||
+ | Der normale Programmablauf wird abgebrochen. | ||
+ | Alle auf dem Stapel befindlichen Variablen werden abgebaut (stack unwinding), | ||
+ | bis ein passender [[# | ||
+ | [[begriffe# | ||
+ | gefunden wird. | ||
+ | Wird eine Ausnahme nicht gefangen, endet das Programm mit einer | ||
+ | (implementationsspezifischen) Fehlermeldung.\\ | ||
+ | |||
+ | Eine '' | ||
+ | welche Ausnahmen eine Funktion werfen kann. | ||
+ | Tritt eine Ausnahmesituation ein, die laut '' | ||
+ | gar nicht eintreten dürfte, wird ein '' | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#catch]], [[#try]]| [[.: | ||
+ | |||
+ | ==== true ==== | ||
+ | C++98 : Der Wahrheitswert '' | ||
+ | Das ist auch der Ergebniswert bei erfüllter logischer Testbedingung. | ||
+ | Wird einer [[# | ||
+ | erhält diese Variable den Wert true. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#bool]], [[#false]]| [[.: | ||
+ | |||
+ | ==== try ==== | ||
+ | C++98 : | ||
+ | Das Schlüsselwort '' | ||
+ | der unsichere Anweisungen enthält, | ||
+ | die direkt oder indirekt eine [[begriffe# | ||
+ | werfen ([[# | ||
+ | An den try-Block schliessen sich ein oder mehrere [[# | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#catch]], [[#throw]]| [[.: | ||
+ | |||
+ | ==== typedef ==== | ||
+ | C, C++ : Das Schlüsselwort '' | ||
+ | oder einem davon abgeleiteten Typ einen neuen Namen zu. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | - | [[.: | ||
+ | | C++11 | [[#using]] | [[.: | ||
+ | |||
+ | ==== typeid ==== | ||
+ | C++98 : | ||
+ | Der '' | ||
+ | zur Laufzeit-Typinformation (RTTI). | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | - | [[.: | ||
+ | |||
+ | ==== typename ==== | ||
+ | C++98 : | ||
+ | Das Schlüsselwort '' | ||
+ | um dem Compiler in [[begriffe# | ||
+ | bekannt zu geben, dass der nachfolgende noch unbekannte Bezeichner ein Typ ist. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[# | ||
+ | |||
+ | ==== union ==== | ||
+ | C, C++ : [[begriffe# | ||
+ | '' | ||
+ | unterschiedlichen Typs, die sich einen Speicherplatz gemeinsam teilen, | ||
+ | d.h. je nachdem, über welchen Bezeichner der Speicher angesprochen wird, | ||
+ | wird dasselbe Bitmuster anders interpretiert. | ||
+ | Werden Daten eines Typs abgelegt und dann Daten eines anderen Typs gelesen, | ||
+ | so ist das Ergebnis implementationsspezifisch. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#struct]] | [[.: | ||
+ | | | | [[.: | ||
+ | |||
+ | ==== unsigned ==== | ||
+ | C, C++ : Der Typmodifizierer '' | ||
+ | und [[#int]] | ||
+ | sowie auf dessen Modifikationen [[#short]] | ||
+ | und [[#long]] | ||
+ | anwendbar. Der Typ wird als vorzeichenlos interpretiert. | ||
+ | Auf Systemen mit binärem Datenspeicher | ||
+ | ist damit der größte darstellbare Wert etwa doppelt so groß | ||
+ | wie beim vorzeichenbehafteten ([[# | ||
+ | dafür gibt es aber keine negativen Werte. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#char]], [[#int]], [[# | ||
+ | |||
+ | ==== using ==== | ||
+ | C++98 : Mit dem Schlüsselwort '' | ||
+ | der Nutzer einen ganzen | ||
+ | [[begriffe# | ||
+ | oder auch nur einzelne Bezeichner importieren, | ||
+ | die er nicht mit vorangestelltem Namensraumbezeichner ansprechen will. | ||
+ | Alle Bezeichner der C++-Standard-Bibliothek befinden sich im Namensraum '' | ||
+ | |||
+ | C++11 : Das Schlüsselort '' | ||
+ | Generische Typ-Aliase gehen über die Möglichkeiten des Schlüsselwortes '' | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[# | ||
+ | | C++11 | [[# | ||
+ | |||
+ | ==== virtual ==== | ||
+ | C++ : Als '' | ||
+ | werden eingerichtet, | ||
+ | Werden solche Methoden dann über Zeiger oder Referenzen des | ||
+ | [[begriffe# | ||
+ | aufgerufen, wird die tatsächliche (engl. virtual) | ||
+ | Methode des referenzierten Objekts | ||
+ | ausgeführt. Dieses Verhalten wird als | ||
+ | [[begriffe# | ||
+ | bezeichnet. | ||
+ | |||
+ | Virtuelle Basisklassen kommen bei der Nutzung der | ||
+ | [[begriffe# | ||
+ | vor. | ||
+ | In der Klassenhierarchie kann ein gerichteter Graph entstehen (Rhombus), | ||
+ | bei dem eine Basisklasse B auf mehreren Wegen (A1 und A2) an C vererbt wird. | ||
+ | Dadurch existieren mehrere Basisobjekte A1::B und A2::B in den C-Objekten. | ||
+ | Wird dagegen die Basisklasse '' | ||
+ | befindet sich nur eine Basisinstanz B im mehrfach abgeleiteten Objekt C. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#class]]| [[.: | ||
+ | | | ||
+ | |||
+ | ==== void ==== | ||
+ | C, C++ : Das Schlüsselwort '' | ||
+ | wo kein Typ angegeben werden kann.\\ | ||
+ | |||
+ | Funktionen mit dem [[begriffe# | ||
+ | '' | ||
+ | |||
+ | Die Angabe '' | ||
+ | [[begriffe# | ||
+ | und die leere Parameterliste sind in C++ gleichbedeutend.\\ | ||
+ | |||
+ | Typfreie [[begriffe# | ||
+ | '' | ||
+ | Sie halten eine Adresse, ohne dass gesagt werden kann, | ||
+ | wie die dort stehenden Bits zu interpretieren sind. | ||
+ | Dazu ist ein [[begriffe# | ||
+ | erforderlich. | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[# | ||
+ | |||
+ | ==== volatile ==== | ||
+ | C, C++ : Flatterhafte (engl. volatile) Variablen können ihre Werte auch ohne | ||
+ | Zuweisungen durch das Programm ändern, z. B. in einem Gerätetreiber. | ||
+ | Dem Compiler wird mit der Kennzeichnung '' | ||
+ | bei der Optimierung irgendwelche Annahmen über den Variablenwert zu machen. | ||
+ | Bei jedem lesenden Zugriff muss der Wert erneut ausgelesen werden, | ||
+ | scheinbar überflüssige Schreiboperatoren dürfen ebenfalls nicht wegoptimiert werden. | ||
+ | |||
+ | C++11 : In Multithreading-Anwendungen erfolgt Synchronisierung besser über '' | ||
+ | |||
+ | ==== wchar_t ==== | ||
+ | C++ : Der implementierungsabhängige Datentyp '' | ||
+ | wird für Zeichensätze / Kodierungen mit mehr als 1 Byte Breite | ||
+ | (Unicode / ISO 10646, UCS-2 / UTF-16, UCS-4 / UTF-32) benötigt. | ||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#char]], [[# | ||
+ | |||
+ | ==== while ==== | ||
+ | C, C++ : Das Schlüsselwort '' | ||
+ | Durchführungs-[[begriffe# | ||
+ | am Beginn einer | ||
+ | [[begriffe# | ||
+ | bzw. am Ende einer mit [[#do]] | ||
+ | eingeleiteten [[begriffe# | ||
+ | |||
+ | |||
+ | | Siehe auch: | Schlüsselwörter | Quelltext| | ||
+ | | | [[#do]]| [[.: | ||
+ | |||
+ | |||