Typ wyliczeniowy w C++
Typ wyliczeniowy (ang. enumeration, skrót: enum) w C++ jest specjalnym typem danych, który pozwala tworzyć zmienne przyjmujące ograniczony zestaw nazwanych wartości. Dzięki temu kod staje się czytelniejszy i łatwiejszy w utrzymaniu, a wartości stałych są logicznie pogrupowane.
1. Definicja typu wyliczeniowego
Typ wyliczeniowy deklaruje się za pomocą słowa kluczowego enum.
Składnia:
Przykład:
DniTygodniato nowy typ danych.Poniedzialek, Wtorek, …to stałe wartości typuDniTygodnia.- Domyślnie wartości te są przypisane liczbom całkowitym:
Poniedzialek = 0,Wtorek = 1, itd.
2. Przypisywanie wartości
- Można jawnie przypisać wartości liczbowe do elementów wyliczenia.
Przykład:
Zimno = 0,Cieplo = 20,Goraco = 35.- Kolejne elementy bez przypisanej wartości przyjmują wartość o 1 większą od poprzedniego.
3. Tworzenie zmiennej typu wyliczeniowego
Przykład:
- Zmienna
dzienmoże przyjmować tylko wartości zadeklarowane w enum. - Porównania między wartościami wyliczeniowymi są w pełni legalne i czytelne.
4. Typ wyliczeniowy jako enum class (C++11)
- Nowoczesna forma typu wyliczeniowego w C++11 wprowadza bezpieczne typy wyliczeniowe, które są ściśle typowane.
- Chroni przed przypadkowym przypisaniem wartości spoza wyliczenia i uniknięciem konfliktu nazw.
Składnia:
Przykład użycia:
- W
enum classdostęp do wartości wymaga prefiksuKolor::. - Nie można bezpośrednio przypisać wartości liczbowej do zmiennej typu
enum classbez rzutowania.
5. Konwersja enum na liczbę
- W klasycznym
enumwartości można traktować jak liczby całkowite:
- W
enum classkonieczne jest rzutowanie jawne: