Использование enum в C++

Enum (перечисления) в C++ являются удобным инструментом для определения набора именованных констант. В этой статье мы рассмотрим, как использовать enum в C++, включая объявление, присваивание значений и примеры применения.

Определение и использование enum

Синтаксис для определения enum в C++ выглядит следующим образом:


enum <имя_перечисления> {
    <значение_1>,
    <значение_2>,
    ...
};

Имя перечисления и значения должны быть допустимыми идентификаторами в C++. Значения перечисления могут быть целочисленными или символьными литералами.

Вот пример определения enum для дней недели:


enum DaysOfWeek {
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
};

Теперь мы можем использовать эти значения в коде следующим образом:


DaysOfWeek today = Monday;
if (today == Saturday || today == Sunday) {
    std::cout << "It's the weekend!n";
} else {
    std::cout << "It's a weekday.n";
}

Присваивание значений enum

По умолчанию, значения enum начинаются с 0 и увеличиваются на 1 для каждого следующего элемента. Однако, вы можете явно присваивать значения элементам перечисления. Вот пример:


enum Colors {
    Red = 5,
    Blue = 10,
    Green = 15
};

В этом примере Red имеет значение 5, Blue — 10, а Green — 15. Если значение не указано, оно автоматически увеличится на 1 от предыдущего значения.

Пример использования enum

Давайте рассмотрим пример, в котором используется enum для представления различных типов фигур:


#include <iostream>

enum ShapeType {
    Circle,
    Square,
    Triangle,
    Rectangle
};
Рисуем круг.
Рисуем треугольник.
Рисуем прямоугольник.
Неизвестная фигура
void DrawShape(ShapeType shape) {
    switch (shape) {
        case Circle:
            std::cout << "Рисуем круг.n";
            break;
        case Square:
            std::cout << "Рисуем квадрат.n";
            break;
        case Triangle:
            std::cout << "Рисуем треугольник.n";
            break;
        case Rectangle:
            std::cout << "Рисуем прямоугольник.n";
            break;
        default:
            std::cout << "Неизвестная фигура.n";
            break;
    }
}

int main() {
    DrawShape(Circle);
    DrawShape(Triangle);
    DrawShape(Rectangle);
    DrawShape(static_cast<ShapeType>(100)); // Неизвестная фигура
    return 0;
}

В этом примере мы определяем enum ShapeType, который содержит значения для четырех различных типов фигур: круга, квадрата, треугольника и прямоугольника. Затем мы создаем функцию DrawShape, которая принимает параметр типа ShapeType и выводит сообщение о том, какую фигуру мы рисуем.


Рисуем круг.
Рисуем треугольник.
Рисуем прямоугольник.
Неизвестная фигура.

Этот пример демонстрирует, как enum может использоваться для представления различных типов фигур и упрощения логики кода при работе с ними. Использование enum позволяет нам легко определить и использовать именованные константы, делая код более читаемым и понятным.

Источник