capypad
0 Tage Serie
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
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