cpp / intermediate
Snippet
Streng typisierte gekapselte Aufzählungen
Gekapselte Aufzählungen (enum class) verhindern Namenskollisionen, indem sie den Enum-Namen als Präfix erfordern. Im Gegensatz zu traditionellen Enums konvertieren sie nicht implizit in Ganzzahlen, was die Typsicherheit erzwingt und versehentliche mathematische Operationen auf symbolischen Konstanten verhindert.
snippet.cpp
cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>enum class SecurityLevel {Low,Medium,High};int main() {SecurityLevel current = SecurityLevel::Medium;// Comparison requires explicit scopeif (current == SecurityLevel::Medium) {std::cout << "Level is balanced." << std::endl;}// Error: int x = current; // No implicit conversion to intreturn 0;}
Erklärung
1
enum class SecurityLevel
Deklariert eine gekapselte Aufzählung, die einen eigenen Namensraum für ihre Werte erstellt.
2
SecurityLevel::Medium
Greift über den Bereichsauflösungsoperator auf den Enum-Wert zu.