enum перечисление С++

1) enum ключевое слово обозначающее перечисление - целочисленный набор данных обозначаемых псевдонимами.

2) Члены перечисления подобны константным целочисленным переменным или макроопределениям.

3) Значение члена перечисления нельзя изменить после объявления.

4) Элементы членов перечисления могут иметь одинаковые целочисленные значения.


#include <iostream> // cout
using namespace std;

int main(){
    enum {INT, FLOAT, STRING}; // Неименованное перечисление
    cout << FLOAT << endl;  //1 по умолчанию первый член перечисления равен нулю, второй единице и т.д.

    enum digit{ZERO, ONE, TWO, THREE}; // Именованное перечисление digit
    cout << digit::TWO << endl;  //2 Можно обращаться к членам через имя перечисления digit
    cout << TWO << endl;  //2 Но можно обращаться к членам как к неименованному перечислению

    enum {A = 8, B, C = -3, D, E}; // Можно задавть явно целочисленные значения элементам перечисления, неинициализированные элементы за ними будут иметь возростающие значения
    cout << A << " " << B << " " << C << " " << D << " " << E << endl; //8 9 -3 -2 -1
}

Перечисления в С++11

1) В С++11 введены перечисления с ключевым словом class и обязательным заданием имени перечисления.

2) Доступ к членам перечисления осуществляется только через ИмяПеречисления :: ИмяЧлена

3) Необходимо выполнять преобразования для приведения значения перечисления к целочисленному виду (типа static_cast(enum_name :: enum_member)).


#include <iostream> // cout
using namespace std;

int main(){
    enum class my_fruits{APPLE = 1, PEAR, PEACH}; // Перечисление С++11
    cout << static_cast<int>(my_fruits::PEACH) << endl;  //3
}
2023-10-22



Понравилась страница?
Добавить в закладки
Или поделиться!

Связанные темы

char символьный тип данных в С++ длиной 1 байт
char16_t символьный беззнаковый тип данных длиной 16 бит в С++11
char32_t символьный беззнаковый тип данных длиной 32 бит в С++11
char8_t символьный тип данных в С++20
Типы данных C++
double - тип данных для представления вещественных чисел двойной точности
enum перечисление С++
float C++ представление вещественных данных с одинарной точностью
int C++ целочисленный тип данных
Целочисленные типы С++ long и long long
short С++ целочисленный тип данных
signed C++ модификатор знакового целочисленного типа
typedef C++ создание псевдонимов для типов данных
typeid C++ определение типа данных
union C++ объединение переменных разных типов в общей памяти
unsigned С++ беззнаковые числа
void C++ для функций не возвращающих значений или задания пустого указателя
wchar_t С++ расширенный набор символов и строк