cpp / beginner
Snippet
Enumerationen: Benannte Integer-Konstanten
Eine Enumeration definiert einen Satz von benannten Integer-Konstanten. Traditionelle Enums (wie Color) sind im globalen Scope, waehrend enum class (wie Priority) staerkere Typsicherheit bietet und den Scope-Operator :: fuer den Zugriff erfordert. Enums machen Code lesbarer, indem sie Magische Zahlen durch aussagekraeftige Namen ersetzen.
snippet.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>enum Color {RED = 1,GREEN = 2,BLUE = 3};enum class Priority {LOW = 1,MEDIUM = 2,HIGH = 3};int main() {Color favorite = GREEN;if (favorite == RED) {std::cout << "Red is favorite" << std::endl;} else if (favorite == GREEN) {std::cout << "Green is favorite" << std::endl;}Priority p = Priority::HIGH;std::cout << "Priority value: " << static_cast<int>(p) << std::endl;return 0;}
Erklärung
1
enum Color { RED = 1, GREEN = 2, BLUE = 3 };
Traditionelles Enum mit zugewiesenen Integer-Werten
2
enum class Priority { LOW, MEDIUM, HIGH };
Stark typisiertes Enum class, das Scope-Operator erfordert
3
static_cast<int>(p)
Konvertiert Enum-class-Wert fuer die Ausgabe in Integer