cpp / intermediate
Snippet
Gekapselte Enumerationen für explizite Zustände
Gekapselte Enumerationen ('enum class') verhindern Namenskollisionen, indem sie den Scope-Operator erfordern. Sie sind außerdem streng typisiert, d. h. sie werden nicht implizit in Integer konvertiert, wodurch häufige Logikfehler bereits beim Kompilieren abgefangen werden.
snippet.cpp
cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>enum class ConnectionStatus {Disconnected,Connecting,Connected};int main() {ConnectionStatus current = ConnectionStatus::Connecting;// Strongly typed: cannot be implicitly compared to integersif (current == ConnectionStatus::Connecting) {std::cout << "Establishing link..." << std::endl;}return 0;}
Erklärung
1
enum class ConnectionStatus
Definiert ein Scoped Enum. Werten muss 'ConnectionStatus::' vorangestellt werden.