namespace cpp

C++ lernen, kennen, anwenden

Benutzer-Werkzeuge

Webseiten-Werkzeuge


kennen:keywords

Schlüsselwörter

Dinge, die erst erklärt werden müssen, sind oft der Erklärung nicht wert.
— Voltaire

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 Operatornamen

not   !       compl    ~      not_eq   !=
and   &&      bitand   &      and_eq   &=
or    ||      bitor    |      or_eq    |=
              xor      ^      xor_eq   ^=

für einige Operatoren wie Schlüsselwörter zu behandeln. An bestimmten Stellen haben die Bezeichner final und override besondere Bedeutung.

alphabetisch geordnet

nach Aufgaben geordnet

Schlüsselwörter der Sprache C sind durch einen nachfolgenden Stern* gekennzeichnet, mit C++11 hinzugekommene durch ein Plus+, durchgestrichene geächtet oder entfallen.

Grunddatentypen Wahrheitswerte bool, true, false
Zeichen und Zahlen char*, char16_t+, char32_t+, wchar_t
Zahlen double*, float*, int*,
weitere auto+, enum*, typedef*, void*
Modifizierer für Platzbedarf long*, short*
Vorzeichen signed*, unsigned*
Veränderbarkeit const*, constexpr+, mutable, volatile*
Lebensdauer / Ort alignas+, extern*, static*, thread_local+
Zusammengesetzte Typen Klassen & Strukturen class, struct*, union*, explicit, this, virtual
Zugriffsrechte friend, private, protected, public
Typinformation alignof+, decltype+, sizeof*, typeid, typename
Typumwandlung (type casts) const_cast, dynamic_cast, reinterpret_cast, static_cast
Ablaufsteuerung Schleifen do*, for*, while*
Verzweigungen else*, default*, if*, switch*, case*
Sprünge break*, continue*, goto*
Ausnahmebehandlung catch, noexcept+, static_assert+, throw, try
Assemblercode asm
Freispeicher delete, new, nullptr+
Funktionen inline, operator, return*
Namensbereiche namespace, using
Schablonen template
reserviert export+, register*

Aufgeführte Jahreszahlen geben die Einführung / Bedeutungsänderung der Schlüsselwörter im Sprachstandard (C++ ISO 14882) an.

C++ Schlüsselwörter

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, sizeof -

alignof

C++11 : liefert Abstand aufeinander folgender (Feld-)Elemente dieses Typs in Byte.

Siehe auch: Schlüsselwörter Quelltext
alignas, sizeof -

asm

C++ : Das Schlüsselwort asm dient zum Einbinden von Assembler-Anweisungen 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 auto ist ein Relikt aus der Programmiersprache BCPL zur Kennzeichnung von automatisch angelegten und beseitigten Variablen im Gegensatz zu statischen (static) Variablen. Der (veraltete) Variablen-Modifizierer wird kaum noch benutzt. Falls nicht anders gekennzeichnet, sind alle (lokalen) Variablen automatisch.

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 auto, range-based for

bool

C++98 : Der bool-Datentyp nimmt die Wahrheitswerte true und false auf. Bei der Zuweisung aus anderen Typen wird Null zu false, jeder andere Wert zu true. Schleifen und Verzweigungen werden mit logischen Ausdrücken gesteuert. Die zweiwertige Logik ist nach George Boole benannt.

Siehe auch: Schlüsselwörter Quelltext
false, true Beispiel bool

break

C, C++ : Das Schlüsselwort break weist das Verlassen einer Mehrfachverzweigung (switch) oder den Abbruch einer (der innersten) Schleife an.

Siehe auch: Schlüsselwörter Quelltext
case, default, switch Beispiel switch
continue, do, for, while Beispiel break in Schleife

case

C, C++ : Das Schlüsselwort case (dt. Fall / falls, Testwert) markiert einen Einsprungpunkt im Anweisungsblock einer Mehrfachverzweigung. Nur ganzzahlige Konstanten sind erlaubt, jeder Wert muss einzeln aufgeführt werden.

Siehe auch: Schlüsselwörter Quelltext
break, default, switch Beispiel switch

catch

C++98 : Mit dem Schlüsselwort catch beginnt ein Abschnitt zur Ausnahmebehandlung. Es darf nur im Anschluss an einen try-Block mit "unsicheren" Anweisungen erscheinen, die direkt oder indirekt eine Ausnahme werfen (throw) können.

Siehe auch: Schlüsselwörter Quelltext
throw, try Beispiel Ausnahmebehandlung

char

C, C++ : Der Grunddatentyp char (character) erfasst Zeichen. — Vorsicht! Das Byte wird als sizeof(char)==1 aufgefasst, d.h. nicht unbedingt 8 bit!

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 'A' die Nummer 65 im ASCII-Zeichensatz, auf Maschinen mit EBCDIC-Zeichensatz (entpackt) jedoch die Nummer 193.

Siehe auch: Schlüsselwörter Quelltext
char16_t, char32_t, wchar_t Beispiel Datentypen in C++

char16_t

C++11 : Zeichentyp mit 16 bit Breite.

Siehe auch: Schlüsselwörter Quelltext
char, char32_t, wchar_t Beispiel Datentypen in C++

char32_t

C++11 : Zeichentyp mit 32 bit Breite.

Siehe auch: Schlüsselwörter Quelltext
char, char16_t, wchar_t Beispiel Datentypen in C++

class

C++ : Das Schlüsselwort class leitet die Deklaration bzw. Definition einer Klasse ein. Klassen und Strukturen (struct) sind in C++ gleichwertig mit einer Ausnahme: Das voreingestellte Zugriffsrecht einer Klasse ist private. Mit Klassen wird das Typsystem für objektorientiertes Programmieren aufgebaut.

Siehe auch: Schlüsselwörter Quelltext
struct Beispiel class

const

C, C++ : Mit dem Schlüsselwort const markierte Variablen, Zeiger oder Objekte werden als unveränderlich betrachtet. Zumindest behindert const die Wertänderung über den nachfolgenden Bezeichner.

In C++ können auch Methoden mit const als nur lesende Methoden markiert werden (UML-Eigenschaftswert {readonly}). Solche Methoden ändern die Attributwerte des aufrufenden Objektes nicht.

Bei const-Objekten können nur const-Methoden benutzt werden.

Der richtige und konsequente Einsatz (const correctness) trägt zur Verbesserung der Softwarequalität bei.

Siehe auch: Schlüsselwörter Quelltext
constexpr, mutable Beispiel const

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, mutable Beispiel constexpr

const_cast

C++98 : Ein const_cast ist eine auffällige Form eines Typecast, bei dem das Schreibschutzsystem für Variablen (const) bewusst ausgehebelt wird.

Siehe auch: Schlüsselwörter Quelltext
static_cast, reinterpret_cast Beispiel Typecasts

continue

C, C++ : Das Schlüsselwort continue weist an, die Anweisungen bis zum Ende eines Schleifenblockes zu überspringen. Die Schleife wird dadurch nicht abgebrochen (s. break).

Siehe auch: Schlüsselwörter Quelltext
break, do, for, while Beispiel continue

decltype

C++11 : erschließt Typ eines Ausdrucks (type inference), nützlich vor allem bei der Definition von Schablonen.

Siehe auch: Schlüsselwörter Quelltext
auto, template Beispiel decltype

default

C, C++ : Der mit default: (dt. Vorgabe) markierte Zweig in einer Mehrfachverzweigung (switch-Anweisung) wird ausgeführt, wenn keiner der einzeln aufgeführten Fälle (case) zutrifft.

C++11 : Ein = default markierter Destruktor, Konstruktor oder Zuweisungsoperator einer Klasse oder Struktur wird vom Compiler mit dem Standardverhalten implementiert.

Siehe auch: Schlüsselwörter Quelltext
case, switch Beispiel switch
class, delete, struct Beispiel default, delete

delete

C++ : Der Operator delete zerstört dynamische Objekte und gibt deren Speicher frei, 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 "baumelnde Zeiger" zu verhindern.

C++11 : Eine = delete markierte Funktion, auch Destruktor, Konstruktor oder Zuweisungsoperator einer Klasse oder Struktur wird vom Compiler nicht implementiert, ihr Aufruf ist nicht erlaubt.

do

C, C++ : Das Schlüsselwort do leitet eine fußgesteuerte Schleife ein.

Siehe auch: Schlüsselwörter Quelltext
while Beispiel while

double

C, C++ : Der Grunddatentyp double nimmt Fließkommazahlen mit erhöhter Zahl bedeutsamer Stellen ("doppelt genau") und erweitertem Exponentenbereich auf. Die Typbezeichnung long float ist gleichbedeutend.

Siehe auch: Schlüsselwörter Quelltext
float Beispiel Datentypen in C++

dynamic_cast

C++98 : Ein dynamic_cast ist eine auffällige Form eines Typecast für den "Downcast" in Vererbungshierarchien, bei dem geprüft wird, ob ein Objekt die Schnittstelle einer Unterklasse anbieten kann. Kann die Umwandlung nicht vorgenommen werden, wird bei Zeigern ein NULL-Zeiger geliefert, bei Referenzen eine bad_cast-Ausnahme geworfen.

Siehe auch: Schlüsselwörter Quelltext
static_cast, reinterpret_cast Beispiel Typecasts

else

C, C++ : Das Schlüsselwort else leitet den "Sonst"-Zweig einer Verzweigung ein. Davor muss eine if-Anweisung stehen. Bei mehreren vorangehenden if bindet else stets an das unmittelbar vorherige if im gleichen Block.

Siehe auch: Schlüsselwörter Quelltext
if Beispiel if ... else ...

enum

C, C++ : Mit enum werden Aufzählungstypen (engl. enumeration) definiert und diesen Werte aus einer Liste von ganzzahligen Konstanten zugeordnet.

C++11 : Als enum class oder enum struct markierte Aufzählkonstanten sind typsicher, Sie werden nicht implizit in Ganzzahlen umgewandelt. Der darunterliegende Ganzzahltyp kann explizit und im Voraus festgelegt werden: enum class E : unsigned long;

Siehe auch: Schlüsselwörter Quelltext
const Beispiel Datentypen in C++

explicit

C++98 : Das Schlüsselwort explicit (dt. ausdrücklich) vor einem Konstruktor 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 Beispiel explicit

export

C++11 : für künftige Bedeutungen reserviert.

extern

C, C++ : Das Schlüsselwort extern zeigt an, 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
static Beispiel extern

false

C++98 : Der Wahrheitswert false (dt. falsch) hat den Wert 0. Er dient als Ergebniswert bei nicht erfülltem logischem Test.

Siehe auch: Schlüsselwörter Quelltext
bool, true Beispiel bool

float

C, C++ : Der Grunddatentyp float nimmt Fließkommazahlen mit "einfacher" Genauigkeit auf. Typisch sind 6 oder 7 Dezimalstellen vertrauenswürdig.

Siehe auch: Schlüsselwörter Quelltext
double Beispiel Datentypen in C++

for

C, C++ : Das Schlüsselwort for leitet eine kopfgesteuerte Schleife oder Zählschleife ein. Im Steuerteil der for-Anweisung gibt es einen Ausdruck für Startwerte, eine Durchführungs-Bedingung und den nach jedem Durchlauf auszuwertenden Ausdruck für den Schleifenschritt. Jede for-Anweisung kann in eine gleichwertige while-Anweisung umgeschrieben werden.

C++11 : Die range based for-Anweisung erlaubt Formulierungen der Art für jedes Element aus dem Bereich ….

Siehe auch: Schlüsselwörter Quelltext
while Beispiel Zählschleife
auto, range-based for

friend

C++ : Mit dem Schlüsselwort friend erklärt eine Klasse 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
private, protected, public Beispiel class

goto

C, C++ : Mit dem Schlüsselwort goto wird ein Sprung 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 goto durch durch strukturiertere Sprachmittel (Schleife oder Verzweigung) ersetzt werden.

Siehe auch: Schlüsselwörter Quelltext
do, else, if, for, while Beispiel Sprunganweisung

if

C, C++ : Das Schlüsselwort if markiert den Beginn einer Entscheidung. Nach der zu erfüllenden Bedingung und dem "Dann"-Zweig kann ein else-Block folgen, muss aber nicht. Mit if-else-if-Leitern und switch-Anweisungen können Mehrfachverzweigungen realisiert werden.

Siehe auch: Schlüsselwörter Quelltext
else, switch Beispiel if ... else ...

inline

C++ : Als inline markierte Funktionen vermeiden beim Aufruf den Aufwand eines Funktionsaufrufes (Parameterübergabe, Aufbau eines Stapelrahmens, Sprungbefehl, Stapelausrichtung, Ablage des Ergebnisses, Abbau des Stapels, Rücksprung). Für Funktionen mit sehr wenigen Anweisungen kann sich daraus ein Geschwindigkeitsgewinn ergeben. Gleichzeitig wird die Typprüfung vollständig durchgeführt. Deshalb sind inline-Funktionen sicherer als Präprozessor-Makros.

Siehe auch: Schlüsselwörter Quelltext
- Beispiel inline

int

C, C++ : Der Grunddatentyp int nimmt vorzeichenbehaftete Ganzzahlen auf. Die Speicherbreite eines int entspricht i.a. der Verarbeitungsbreite des 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:

  • unsigned-Typen werden als vorzeichenlos interpretiert,
  • short-Typen sind typisch 16 bit breit,
  • long-Typen haben zumeist 32 bit.

Damit ist auch der Wertebereich systemabhängig.

Siehe auch: Schlüsselwörter Quelltext
long, short, signed, unsigned Beispiel Datentypen in C++

long

C, C++ : Der Modifizierer long ist bei den Datentypen int, float und double zulässig. Je nach System wird dadurch ein Typ mit größerem Speicherplatzbedarf und erweitertem Wertebereich angegeben. Nicht jede Kombination ergibt jedoch einen neuen Typ, z. B. ist long float gleichbedeutend mit double.

Siehe auch: Schlüsselwörter Quelltext
double, float, int, short Beispiel Datentypen in C++

mutable

C++98 : Als mutable (dt. veränderbar) gekennzeichnete Attribute einer Klasse können sich selbst dann ändern, wenn das Objekt als konstant markiert ist oder eine konstante Methode abgearbeitet wird. Mit anderen Worten: mutable verletzt absichtlich die Regeln für const. Weil das schlecht ist, sollten zuvor andere Wege geprüft werden.

Siehe auch: Schlüsselwörter Quelltext
class, const Beispiel mutable

namespace

C++98 : Das Schlüsselwort namespace erlaubt es, die Verschmutzung des globalen Namensraums mit Bezeichnern einzuschränken. Kollisionen zwischen gleichartigen Bezeichnern in Bibliotheken unterschiedlicher Hersteller werden dadurch vermieden. Der Nutzer kann entscheiden, ob er

  • 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 std. Im namenlosen Namensraum namespace {…} werden Bezeichner untergebracht, die nicht aus anderen Übersetzungseinheiten 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 Beipiel namespace

new

C++ : Der Operator new erzeugt dynamische Objekte. 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
delete, nullptr Beispiel new, delete, nullptr

noexcept

C++11 : Die Angabe nothrow nach der Parameterliste einer Funktion oder Methode zeigt an, dass diese keine Ausnahme werfen wird. Sollte dies doch geschehen, wird das Programm mit der Ausnahme std::unexpected beendet.

Siehe auch: Schlüsselwörter Quelltext
catch, throw Beispiel noexcept

nullptr

C++11 : Wert für nicht zugewiesene Zeiger.

Siehe auch: Schlüsselwörter Quelltext
delete, new Beispiel new, delete, nullptr

operator

C++ : Operatoren sind über das Schlüsselwort operator auch als Funktionen ansprechbar. Viele Operatoren lassen sich überladen, d.h. für neue, selbst definierte Datentypen (Klassen und Strukturen) mit einer eigenständigen Bedeutung neu festlegen.

Siehe auch: Schlüsselwörter Quelltext
class, struct Beispiel Operatoren überladen

private

C++ : In als private: markierten Abschnitten einer Klassendefinition aufgeführte Bestandteile einer Klasse können nur in Methoden dieser Klasse benutzt werden.

Private (heimliche) Vererbung macht die Schnittstelle einer Basisklasse nur innerhalb der abgeleiteten Klasse nutzbar.

Siehe auch: Schlüsselwörter Quelltext
friend, protected, public Beispiel class
class, struct Beispiel Vererbungsarten

protected

C++ : In als protected: markierten Abschnitten einer Klassendefinition aufgeführte Bestandteile einer Klasse können nur in Methoden dieser und abgeleiteter Klassen benutzt werden.

Geschützte Vererbung macht die Schnittstelle und die geschützten Bestandteile einer Basisklasse innerhalb der abgeleiteten Klasse nutzbar.

Siehe auch: Schlüsselwörter Quelltext
friend, protected, public Beispiel class
class, struct Beispiel Vererbungsarten

public

C++ : In als public: markierten Abschnitten einer Klassendefinition aufgeführte Bestandteile einer Klasse sind öffentlich zugänglich.

Durch öffentliche Vererbung können Objekte auch als Objekte der Basisklasse angesprochen werden.

Siehe auch: Schlüsselwörter Quelltext
friend, protected, public Beispiel class
class, struct Beispiel Vererbungsarten

register

C : Der Modifizierer register gibt dem Compiler die Empfehlung, 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 reinterpret_cast ist eine auffällige Form eines Typecast, 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
const_cast, static_cast Beispiel Typecasts

return

C, C++ : Mit dem Schlüsselwort return wird die Rückkehr-Anweisung aus einer Funktion eingeleitet. Hat die Funktion nicht den Ergebnistyp void, sollte nach return eine Ausdruck für den Ergebniswert folgen. Anweisungen hinter der Rückkehranweisungen werden nicht abgearbeitet. Die Funktion wird mit der return-Anweisung unmittelbar verlassen. Die Kontrolle wird an das Programmteil zurückgegeben, das die Funktion aufgerufen hat.

Siehe auch: Schlüsselwörter Quelltext
- Beispiel Funktion

short

C, C++ : Der Modifizierer short beim Datentyp int gibt einen Typ mit geringeren Speicherplatzbedarf und kleinerem Wertebereich an.

Siehe auch: Schlüsselwörter Quelltext
int, long Beispiel Datentypen in C++

signed

C, C++ : Der Typmodifizierer signed ist nur auf die ganzzahligen Typen char 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 (unsigned) Typ, dafür gibt es aber auch negative Werte.

Siehe auch: Schlüsselwörter Quelltext
char, int, unsigned Beispiel Datentypen in C++

sizeof

C, C++ : Mit dem Operator sizeof lässt sich der Speicherplatzbedarf von Typen und Variablen bestimmen. Die Größenangabe erfolgt in Byte.

Siehe auch: Schlüsselwörter Quelltext
typeid Beispiel Datentypen in C++

static

C, C++ : Das Schlüsselwort static spielt mehrere unterschiedliche Rollen:

  1. Statische lokale Variablen in Funktionen behalten ihren Wert auch zwischen den Funktionsaufrufen. Die Lebensdauer solcher Variablen erstreckt über das gesamte Programm.
  2. Eine statische Variable in einer Klasse ist nur einmal für die gesamte Klasse vorhanden. Eine solche Klassenvariable existiert unabhängig von der Anzahl von Objekten, die alle Zugriff auf diesen gemeinsamen Speicherplatz haben. Zum Binden muss die Klassenvariable außerhalb der Klasse definiert werden.
  3. Statische Methoden können auch ohne existierende Objekte über ihren Klassennamen angesprochen werden. Statische Methoden dürfen nur statische Klassenvariablen nutzen. Die Klasse wirkt hier als Namensraum.
  4. Statische globale Funktionen und statische globale Variablen sind auf die Übersetzungseinheit (Quelltextdatei) beschränkt gültig. Solche Bezeichner sind für extern-Deklarationen aus anderen Quelltextdateien nicht sichtbar. Einschließen in einen namenlosen Namensraum erreicht denselben Effekt.
Siehe auch: Schlüsselwörter Quelltext
auto, extern, namespace, thread_local Beispiel static

static_assert

C++11 : Das neue Schlüsselwort static_cast erleichtert das Formulieren von Bedingungen, die zum Übersetzen notwendig sind.

Siehe auch: Schlüsselwörter Quelltext
- Beispiel static_assert

static_cast

C++98 : Ein static_cast ist eine auffällige Form eines Typecast, 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
const_cast, reinterpret_cast Beispiel Typecasts

struct

C, C++ : Das Schlüsselwort struct leitet die Deklaration bzw. Definition eines Verbunddatentyps (Struktur) ein, der Daten unterschiedlicher Typen bündelt. In C++ dürfen Strukturen, anders als in C, auch Methoden enthalten. Damit sind Klassen (class) und Strukturen gleichwertig mit einer Ausnahme: Das voreingestellte Zugriffsrecht einer Struktur ist public.

Seltener wird der Verbundtyp genutzt, um Teile einer Ganzzahl als Bitfelder anzusprechen. Dieses Merkmal ist implementationsabhängig.

Siehe auch: Schlüsselwörter Quelltext
class Beispiel struct
Beispiel Gleitkommaformat

switch

C, C++ : Der ganzzahlige Ausdruck nach dem Schlüsselwort switch entscheidet, welcher Fall (case) einer Mehrfachverzweigung abgearbeitet wird.

Siehe auch: Schlüsselwörter Quelltext
break, case, default Beispiel switch
else, if Beispiel if ... else ...

template

C++ : Als Schablonen (engl. templates) definierte Funktionsschablonen und Klassenschablonen lassen Typen oder auch ganzzahlige Konstanten bis zur Nutzung offen. Die Typ-Parametrisierung im generischen Programmierstil stellt eine statische Form von Polymorphie dar.

Siehe auch: Schlüsselwörter Quelltext
typename Beispiel template

this

C++: Jedes Objekt kennt seine eigene Speicheradresse. In Methoden kann mit dem Zeiger this auf das ausführende Objekt verwiesen werden.

Siehe auch: Schlüsselwörter Quelltext
- Beispiel Operatoren überladen

thread_local

C++11 : Im Gegensatz zu static deklarierten Variablen werden thread_local-Variablen für jeden Ablauffaden (Thread) nebenläufiger Programme unabhängig angelegt.

Siehe auch: Schlüsselwörter Quelltext
static -

throw

C++98 : Das Schlüsselwort throw (dt. werfen) dient dazu, eine Ausnahme zu werfen bzw. die Möglichkeit zu erklären.

Eine throw-Anweisung wirft eine Ausnahme. Der normale Programmablauf wird abgebrochen. Alle auf dem Stapel befindlichen Variablen werden abgebaut (stack unwinding), bis ein passender catch-Block zur Ausnahmebehandlung gefunden wird. Wird eine Ausnahme nicht gefangen, endet das Programm mit einer (implementationsspezifischen) Fehlermeldung.

Eine throw-Deklaration im Funktionskopf bekennt, welche Ausnahmen eine Funktion werfen kann. Tritt eine Ausnahmesituation ein, die laut throw-Deklaration gar nicht eintreten dürfte, wird ein bad_exception-Ausnahme ausgelöst.

Siehe auch: Schlüsselwörter Quelltext
catch, try Beispiel Ausnahmebehandlung

true

C++98 : Der Wahrheitswert true (dt. wahr) hat den Wert 1. Das ist auch der Ergebniswert bei erfüllter logischer Testbedingung. Wird einer bool-Variable ein Wert ungleich 0 zugewiesen, erhält diese Variable den Wert true.

Siehe auch: Schlüsselwörter Quelltext
bool, false Beispiel bool

try

C++98 : Das Schlüsselwort try (dt. versuche) leitet einen Block ein, der unsichere Anweisungen enthält, die direkt oder indirekt eine Ausnahme werfen (throw) können. An den try-Block schliessen sich ein oder mehrere catch-Blöcke an.

Siehe auch: Schlüsselwörter Quelltext
catch, throw Beispiel Ausnahmebehandlung

typedef

C, C++ : Das Schlüsselwort typedef weist einem existierenden Typ oder einem davon abgeleiteten Typ einen neuen Namen zu.

Siehe auch: Schlüsselwörter Quelltext
- Beispiel Datentypen in C++
C++11 using Beipiel using

typeid

C++98 : Der typeid-Operator liefert ein std::typeinfo-Objekt zur Laufzeit-Typinformation (RTTI).

Siehe auch: Schlüsselwörter Quelltext
- Beispiel Datentypen in C++

typename

C++98 : Das Schlüsselwort typename wurde eingeführt, um dem Compiler in Schablonen bekannt zu geben, dass der nachfolgende noch unbekannte Bezeichner ein Typ ist.

Siehe auch: Schlüsselwörter Quelltext
template Beispiel template

union

C, C++ : Vereinigungen union haben mehrere Komponenten 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 Beispiel union
Beispiel Gleitkommaformat

unsigned

C, C++ : Der Typmodifizierer unsigned ist nur auf die ganzzahligen Typen char 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 (signed) Typ, dafür gibt es aber keine negativen Werte.

Siehe auch: Schlüsselwörter Quelltext
char, int, signed Beispiel Datentypen in C++

using

C++98 : Mit dem Schlüsselwort using kann der Nutzer einen ganzen Namensraum (namespace) oder auch nur einzelne Bezeichner importieren, die er nicht mit vorangestelltem Namensraumbezeichner ansprechen will. Alle Bezeichner der C++-Standard-Bibliothek befinden sich im Namensraum std.

C++11 : Das Schlüsselort using erlaubt die Einführung neuer Bezeichner für Datentypen. Generische Typ-Aliase gehen über die Möglichkeiten des Schlüsselwortes typedef hinaus.

Siehe auch: Schlüsselwörter Quelltext
namespace Beipiel namespace
C++11 typedef Beipiel using

virtual

C++ : Als virtual gekennzeichnete Methoden werden eingerichtet, um sie in abgeleiteten Klassen zu überschreiben. Werden solche Methoden dann über Zeiger oder Referenzen des Basisklassen-Typs aufgerufen, wird die tatsächliche (engl. virtual) Methode des referenzierten Objekts ausgeführt. Dieses Verhalten wird als Polymorphie bezeichnet.

Virtuelle Basisklassen kommen bei der Nutzung der Mehrfachvererbung 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 virtual vererbt, befindet sich nur eine Basisinstanz B im mehrfach abgeleiteten Objekt C.

Siehe auch: Schlüsselwörter Quelltext
class Beispiel Vererbungsarten
Beispiel virtuelle Basis

void

C, C++ : Das Schlüsselwort void (dt. leer) steht dort, wo kein Typ angegeben werden kann.

Funktionen mit dem Rückgabetyp void liefern keinen Rückgabewert.

Die Angabe void in der Parameterliste einer Funktion und die leere Parameterliste sind in C++ gleichbedeutend.

Typfreie Zeiger void* erlauben keine Zeigerarithmetik. Sie halten eine Adresse, ohne dass gesagt werden kann, wie die dort stehenden Bits zu interpretieren sind. Dazu ist ein Typecast erforderlich.

Siehe auch: Schlüsselwörter Quelltext
reinterpret_cast Beispiel Datentypen in C++

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 volatile untersagt, 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 std::atomic<T> oder Mutexe, da volatile keine Thread-Sicherheit garantiert.

wchar_t

C++ : Der implementierungsabhängige Datentyp wchar_t 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, char16_t, char32_t Beispiel Datentypen in C++

while

C, C++ : Das Schlüsselwort while markiert die Durchführungs-Bedingung am Beginn einer kopfgesteuerten Schleife bzw. am Ende einer mit do eingeleiteten fußgesteuerten Schleife.

Siehe auch: Schlüsselwörter Quelltext
do Beispiel while
kennen/keywords.txt · Zuletzt geändert: 2018-10-20 12:55 von rrichter