Работа с типом enum

Рубрика: C++, Дата: 5 March, 2013, Автор:
Tags:

Да такой интересный тип. В принципе с ним все ясно. Сложности ни кокой нету, это как бы перечисление.

enum пошло от слова enumaric вроде как перечисление переводиться, я в английском не силен мб и с ошибками написал. Рассмотрим как с ним работать.

Первый вариант используется он для построения например меню, для выбора пункта меню. Удобно просто создавать осмысленные пункты меню. Ну от допустим, нет лучше для начала рассмотрим по порядку как объявить переменную и инициализировать?

Объявление и инициализация.

Объявляется он просто следующей строкой:

enum manu{ONE,TWO,THREE};

в данном случае у нас переменная manu имеет тип enum и инициализирована значениями ONE, TWO, THREE;

Создание меню.

Мы можно сказать создали три константы ONE, TWO, THREE, где ONE=0, TWO=1, и THREE=2. Проверим выведем на экран.

cout <<ONE<<' '<<TWO<<' '<<THREE<<endl;

и мы получим 0 1 2

Так что как мы его используем вот пример простого меню:

 

        int a=0;
	cin >>a;
	if(a==ONE)
	{
		cout <<"a ravno ONE"<<endl;
	}
	else if(a==TWO)
	{
		cout <<"a ravno TWO"<<endl;
	}
	else if(a==THREE)
	{
		cout <<"a ravno THREE"<<endl;
	}
	else
	{
		cout <<"uncorect input"<<endl;
	}

сдесь при а==0 выводится “a ravno ONE”, при a==1 выводиться “a ravno TWO” и так далее. (а вы вводите с клавиатуры).

Использование как типа.

Само определение manu – это можно сказать новый тип, тоесть мы можем создавать новые переменные типа manu, от небольшой примерчик.

manu b;

Этим определение мы создали переменную типа manu. Значение ей можно присвоить, только одно из трех констант либо ONE, либо TWO, либо THREE. Другие нельзя потому что вызовет ошибку.

b=ONE;
b=1;//ошибка нельзя b это не тип int

И теперь посмотрим, что у нас получилось в b выведем

cout <<b<<endl;//0

Выводиться 0.

Я чуток вначале упустил но мы можем также задать чтобы начальное значение констант начиналось не с нуля. Например

enum manu{ONE=4,TWO,THREE};

В данном примере константы имеют значения начиная с 4. ONE==4, TWO==5, THREE==6.

И это похоже все больше нечего за него сказать.

 

rss