C++ для новичков: Перечисления (Enum) — просто и эффективно

Перечисления (enum) в C++ позволяют создавать наборы именованных констант, упрощая работу со множеством связанных значений. Рассмотрим создание, использование и преимущества перечислений.

Зачем нужны перечисления?

Перечисления создают упорядоченный список возможных вариантов параметра. Это удобно: весь список доступных значений находится в одном месте, используется для различных объектов и позволяет проводить проверки на соответствие.

Создание перечисления

Для создания используется ключевое слово enum (от англ. «enumeration»). Далее следует имя перечисления (например, Options) и фигурные скобки {}, внутри которых перечисляются варианты. Каждое значение — уникальный идентификатор (имя переменной) на английском языке без специальных символов. В конце — точка с запятой.

Пример:

enum Options { Open, Close, Wait, Delete };

Использование перечисления в структуре

Пример использования перечисления в структуре, описывающей файл:

struct File {
  float weight;
  std::string name;
  Options options; 
};

Options — перечисление, хранящее информацию о состоянии файла (открыт, закрыт и т.д.). Это удобнее, чем хранение состояния строкой, так как исключает ошибки ввода и предоставляет готовый набор значений.

Работа с перечислением

В функции main создадим объект структуры File и установим значение из перечисления для поля options:

int main() {
  File myFile;
  myFile.weight = 1.5f;
  myFile.name = "test";
  myFile.options = Options::Close; // Доступ к элементу перечисления через ::
  return 0;
}

Обратите внимание на оператор ::, используемый для доступа к элементам.

Вывод значений перечисления

При выводе значения перечисления на экран отображается числовое значение. По умолчанию, первому элементу присваивается значение 0, последующим — значения увеличиваются на 1.

std::cout << myFile.options << std::endl; // Выведет числовое значение (в данном случае, 1)

Можно задать собственные значения:

enum Options { Open = 4, Close, Wait, Delete }; // Open = 4, Close = 5, Wait = 6, Delete = 7

Проверка значений перечисления

Проверка значений перечисления:

if (myFile.options == Options::Close) {
  std::cout << "Файл закрыт" << std::endl;
}

Перечисления — мощный инструмент в C++, позволяющий создавать читаемый и безопасный код, избегая магических чисел и обеспечивая ясность при работе со множеством связанных значений. Они упрощают работу с данными, повышая надежность и удобство поддержки кода.

Что будем искать? Например,программа