Enum w C++

W tej lekcji omówimy, czym jest typ wyliczeniowy enum w C++. Typy wyliczeniowe umożliwiają definiowanie zestawu nazwanych wartości całkowitych, które reprezentują konkretne stany lub opcje w programie. Dzięki temu kod jest czytelniejszy i łatwiejszy do zrozumienia, zwłaszcza gdy pracujemy z wieloma możliwymi wartościami.

enum pozwala na stworzenie nowego typu danych, który jest ograniczony do określonego zestawu wartości. Na przykład, jeśli mamy dni tygodnia, możemy stworzyć typ enum o nazwie Day, który zawiera wartości takie jak Monday, Tuesday, Wednesday, itd. Wartości w enum są domyślnie reprezentowane jako liczby całkowite, zaczynając od 0, ale można również przypisać im konkretne liczby.

Poniżej przedstawimy prosty przykład, który pokazuje, jak używać enum w praktyce.

Przykład kodu

Stwórz nowy plik o nazwie enum_example.cpp i wklej do niego poniższy kod:

// Importujemy bibliotekę iostream, aby umożliwić operacje wejścia/wyjścia
#include <iostream>

// Definiujemy typ wyliczeniowy 'Day', który zawiera dni tygodnia
enum Day {
    Monday,    // Domyślna wartość 0
    Tuesday,   // Domyślna wartość 1
    Wednesday, // Domyślna wartość 2
    Thursday,  // Domyślna wartość 3
    Friday,    // Domyślna wartość 4
    Saturday,  // Domyślna wartość 5
    Sunday     // Domyślna wartość 6
};

int main() {
    // Deklarujemy zmienną typu 'Day' i przypisujemy jej wartość 'Friday'
    Day today = Friday;

    // Sprawdzamy, jaki jest dzisiaj dzień, korzystając z instrukcji switch
    switch (today) {
        case Monday:
            std::cout << "Dzisiaj jest poniedziałek." << std::endl;
            break;
        case Tuesday:
            std::cout << "Dzisiaj jest wtorek." << std::endl;
            break;
        case Wednesday:
            std::cout << "Dzisiaj jest środa." << std::endl;
            break;
        case Thursday:
            std::cout << "Dzisiaj jest czwartek." << std::endl;
            break;
        case Friday:
            std::cout << "Dzisiaj jest piątek." << std::endl;
            break;
        case Saturday:
            std::cout << "Dzisiaj jest sobota." << std::endl;
            break;
        case Sunday:
            std::cout << "Dzisiaj jest niedziela." << std::endl;
            break;
        default:
            std::cout << "Nieznany dzień." << std::endl;
    }

    // Możemy również przypisać wartości enum do zmiennych całkowitych
    int dayNumber = today; // Przypisujemy wartość liczbową 'Friday' do zmiennej
    std::cout << "Numer dzisiejszego dnia w tygodniu: " << dayNumber << std::endl;

    return 0;
}

Wyjaśnienie

W powyższym programie pokazaliśmy, jak używać typu wyliczeniowego enum do reprezentowania dni tygodnia. Wartości w enum są traktowane jako liczby całkowite, co ułatwia ich porównywanie i przypisywanie do zmiennych.

  • Na początku definiujemy typ wyliczeniowy Day, który zawiera wszystkie dni tygodnia, od Monday do Sunday. Wartości te są domyślnie przypisywane do liczb całkowitych, zaczynając od 0 dla Monday, 1 dla Tuesday, itd.
  • W funkcji main deklarujemy zmienną today typu Day i przypisujemy jej wartość Friday.
  • Następnie używamy instrukcji switch, aby wyświetlić odpowiedni komunikat w zależności od wartości zmiennej today.
  • Na końcu przypisujemy wartość liczbową Friday (która wynosi 4) do zmiennej dayNumber i wyświetlamy ją na ekranie.

Podsumowanie

Typy wyliczeniowe enum w C++ umożliwiają tworzenie czytelniejszych programów, w których konkretne wartości są reprezentowane przez nazwy zamiast liczb. W tym przykładzie wykorzystaliśmy enum do reprezentowania dni tygodnia i użyliśmy go w instrukcji switch, aby sprawdzić, jaki jest dzień. Typy wyliczeniowe są bardzo przydatne, gdy mamy do czynienia ze zbiorami możliwych wartości, np. dniami tygodnia, miesiącami, stanami czy kolorami.

 

Scroll to Top