Typen

Im Computer werden Daten in binärer Form abgespeichert und ohne genaue Kenntnis der Bedeutung der Bits wäre es unmöglich, diesen Daten einen Wert zuzuordnen. C und C++ löst dies, indem der Programmierer gezwungen wird, jegliche Werte mittels eines eindeutigen Typs zu deklarieren, was man als Typisierung bezeichnet. Hier werden die Typen aufgelistet, welche in C und C++ in die Sprache eingebaut sind. Anhand dieser Typen kann jeder beliebige weitere Typ konstruiert werden.

Integrale Typen
boolBoolscher Wahrheitswert
char1-Byte-Wert
short2-Byte-Wert
int4-Byte-Wert
long long8-Byte-Wert
signedVorzeichenbehafteter Typ
unsignedVorzeichenloser Typ
wchar_tWide-Character
Fliesskomma-Typen
floatFliesskomma-Wert mit einfacher Genauigkeit
doubleFliesskomma-Wert mit doppelter Genauigkeit
long doubleFliesskomma-Wert mit vierfacher Genauigkeit
Erweiterte Typdeklarationen
*Pointer
[]Array
&Referenz
structZusammengehörige Deklaration
classKlassendeklaration
enumAufzählungs-Typ
unionGemeinsame Typdeklaration
(*)()Funktionspointer
Funktionsdeklarationen
 Allgemeine Deklaration einer Funktion
constFunktion im const-safe-Bereich
throwFunktion mit eingeschränktem Exception-Handling
Namen, Symbole
typedefNamensgebung für eine Typ-Deklaration
namespaceGruppierung von Symbolen
usingEinbinden einer Symbolgruppe
Generische Typdeklarationen
templateKeyword für die Deklaration generischer Typen
classKeyword für die Kennzeichnung einer beliebigen Klasse
typenameKeyword für die Kennzeichnung eines beliebigen Typs
Typerweiterung: Speicherklasse
autoAutomatische Allokation und Deallokation auf dem Stack
staticEinmalige Definition
registerBenutzung eines Prozessorregisters
externAllokation und Deallokation wird an anderer Stelle vorgenommen
mutableFeld ausserhalb von const-safe Bereich eines Objektes
virtualMethode der erbenden Klasse ist vorzuziehen
Typerweiterung: Compiler-Hinweise
constWerte bleiben unverändert
inlineFunktion soll direkt in den Code integriert werden
volatileWerte müssen stets neu ausgewertet werden
restrictPointer zeigen nicht an überlappende Speicherbereiche
explicitKonstruktor-Parameter muss eindeutigen Typ besitzen
exportTemplate-Definition befindet sich in einer anderen Datei
friendExterne Struktur darf auf private Daten zugreifen
Weiteres
trueWahrheitswert für Wahr
falseWahrheitswert für Falsch
voidNichts, Ungültig, zu ignorieren
void*Zeiger auf unbestimmten Typ
Null-PointerAuf Null initialisierte Pointer
typeidInformationen über einen Typ