4.2. Перечисления - StriderAJR/StudentCpp GitHub Wiki
Перечисление - это пользовательский тип данных, который состоит из перечисленного набора констант.
Переменная такого типа данных может принимать только строго заданный набор значений. Значение константам можно присвоить только в фигурных скобках при определении перечисления. Изменить его ниже в коде уже нет возможности. Определяя перечисление, объявление типа и переменной необязательно.
Рассмотрим пример:
#include <iostream>
using namespace std;
namespace Enum
{
enum Currency
{
Dollar, Euro, Ruble, Pound
};
struct BankAccount
{
int sum; //поле структуры BankAccount
Currency currency; //создание объекта Currency
};
void main()
{
BankAccount ivan;
ivan.sum = 1200;
ivan.currency = Ruble;
BankAccount victor;
victor.sum = 5000;
victor.currency = Dollar;
}
}
Определяем перечисление:
Для этого используется зарезервированное слово enum
, далее даем название типу — в нашем случае Currency
.
В фигурных скобках объявляем целочисленные константы (элементы перечисления) {Dollar, Euro, Ruble, Pound};
- Опять же не забываем про ;
!
По умолчанию элементу Dollar
будет присвоено значение 0, а последнему Pound
— значение 3.
В данной программе мы ссоздаем переменные типа BankAccount
в которых хранится сумма - sum
и валюта - currency
.
void main()
{
BankAccount ivan;
ivan.sum = 1200;
ivan.currency = Ruble;
BankAccount victor;
victor.sum = 5000;
victor.currency = Dollar;
}
Когда необходимы перечисления?
Перечисления могут использоваться, когда у нас есть ряд логически связанных констант, которые естественно лучше определить в одном общем типе данных. Например в нашем случае это валюта -
Currency
:
enum Currency
{
Dollar, Euro, Ruble, Pound
};
Используя перечисления, мы можем сделать наши коды программ более понятными. В первую очередь потому, что благодаря им возможно использовать в программе не «магические числа» инициализированных где-то в коде переменных, а читаемые названия элементов перечисления. Но, как всегда, не увлекайтесь. Всего в меру.