Datentypen in C++
C++ kennt folgende Datentypen:
Diese Datentypen sind ohne Einbindung von Headern defaultmäßig in C++ bekannt, ihr Name ist auch ein Schlüsselwort. Mittels signed oder unsigned lassen sich die Wertebereiche der Datentypen anpassen. Standard ist unsigned, also nur positive Werte in einem numerischen Datentypen. Ebenfalls noch erwähnenswert ist size_t, ein numerischer, unsigned Datentyp für Größenangaben.
Die STL enthält viele weitere Datentypen, welche ebenfalls vom Standard definiert werden. So gibt es mit std::string und std::wstring zwei Klassen für das Handling mit Strings. Ebenso enthält die STL Containerklassen wie std::vector<T> oder std::list<T>, diese eignen sich für das anlegen von Listen diverser Typen.
Mit dem Schlüsselwort sizeof kann man die Größe eines Typen in Bytes ermitteln. Mittels typedef lassen sich auch beliebige Aliase für Typen in C++ erstellen:
typedef int zahlentyp;
zahlentyp i =0;
"zahlentyp" ist hierbei ein Alias für int. Man kann natürlich auch gleich int i =0 schreiben, typedefs eignen sich aber auch für komplexere Typen und Templates, mehr dazu später.
C++ kennt genau wie C, einfache zusammengesetzte Typen. In C heißen sie structs, und in C++ ist dies auch so. Wobei hier ein struct eigentlich eine Klasse ist, welche auch Methoden und anderes haben kann, für den Anfang ignorieren wir dies aber mal.
Ein einfaches Beispiel:
struct Ware
{
std::string name;
int anzahl;
float preis;
};
Das struct Ware enthält die 3 Membervariablen name, anzahl und preis. Mittels "Ware artikel;" lässt sich eine Instanz von Ware anlegen, welche über den Variablennamen artikel ansprechbar ist. Dieser Datentyp könnte zum Beispiel in einer Lagerverwaltung Verwendung finden.
| Name | Typ | Größe in Bytes |
| char | Charakter Zeichen signed: -128 – 127 unsigned: 0 – 255 |
1 Byte, meistens. |
| wchar_t | Wide Charakter Zeichen. | 2 oder 4 Byte |
| short | Ganzzahl, Integer signed: -32768 – 32767 unsigned: 0 – 65535 |
2 Bytes |
| int | Ganzzahl, Integer signed: -2147483648 – 2147483647* unsigned: 0 – 4294967295* *bei sizeof(int) == 4 Bytes |
i.d.R. 32 oder 64 Bit (4/8 Bytes), meistens Plattformgröße |
| long (long int) | Ganzzahl signed: -2147483648 – 2147483647 unsigned: 0 – 4294967295 |
32 bit bzw. 4 Bytes |
| float | Kommazahl 3.4e +/- 38 (~7 Stellen) |
4 Bytes |
| double | Kommazahl +/- 1.7e +/- 308 (~15 Stellen) |
8 Bytes |
| long double | Kommazahl +/- 1.7e +/- 308 (~15 Stellen) |
8 Bytes |
| bool | Boolscher Wahrheitswert true oder false. |
1 Byte |
Diese Datentypen sind ohne Einbindung von Headern defaultmäßig in C++ bekannt, ihr Name ist auch ein Schlüsselwort. Mittels signed oder unsigned lassen sich die Wertebereiche der Datentypen anpassen. Standard ist unsigned, also nur positive Werte in einem numerischen Datentypen. Ebenfalls noch erwähnenswert ist size_t, ein numerischer, unsigned Datentyp für Größenangaben.
Die STL enthält viele weitere Datentypen, welche ebenfalls vom Standard definiert werden. So gibt es mit std::string und std::wstring zwei Klassen für das Handling mit Strings. Ebenso enthält die STL Containerklassen wie std::vector<T> oder std::list<T>, diese eignen sich für das anlegen von Listen diverser Typen.
Mit dem Schlüsselwort sizeof kann man die Größe eines Typen in Bytes ermitteln. Mittels typedef lassen sich auch beliebige Aliase für Typen in C++ erstellen:
typedef int zahlentyp;
zahlentyp i =0;
"zahlentyp" ist hierbei ein Alias für int. Man kann natürlich auch gleich int i =0 schreiben, typedefs eignen sich aber auch für komplexere Typen und Templates, mehr dazu später.
C++ kennt genau wie C, einfache zusammengesetzte Typen. In C heißen sie structs, und in C++ ist dies auch so. Wobei hier ein struct eigentlich eine Klasse ist, welche auch Methoden und anderes haben kann, für den Anfang ignorieren wir dies aber mal.
Ein einfaches Beispiel:
struct Ware
{
std::string name;
int anzahl;
float preis;
};
Das struct Ware enthält die 3 Membervariablen name, anzahl und preis. Mittels "Ware artikel;" lässt sich eine Instanz von Ware anlegen, welche über den Variablennamen artikel ansprechbar ist. Dieser Datentyp könnte zum Beispiel in einer Lagerverwaltung Verwendung finden.
