Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Будет выведено не значение east, а ее внутреннеее представление , т.е. число

Они не распознаются средствами ввода/вывода С++.

Enum direction

Enum coins

Константы перечислимого типа считаются числовыми и целочисленными (значение первой из констант полагается равной нулю, а всех остальных – увеличивается на единицу).

ЛЕКЦИЯ 14

Типы данных, определенные пользователем

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

Задание перечислимого типа
с помощью оператора
enum [имя_типа] { список_констант }
[список_переменных];

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

enum color {red, green, blue};
cout<<red<<’ ’<<blue<<’ ’<<green; // 0 2 1
enum color2 {yellow, cyan=100, magenta};

cout<<yellow<<’ ’<<cyan<<’ ’<<magenta;
// 0 100 101

Перечислимые константы могут инициализироваться произвольными целыми константами:
enum color{r=2,g=4,b=6};

Допускается определение анонимных перечислений (без указания имени типа).
enum {off,on}; //off=0,on=1
enum {MON,TUES,WED,THURS,FRI,SAT,SUN};

эквивалентно описанию 7 констант-кодов дней недели:
const int MON = 0;
const int TUES = 1;
const int WED = 2;
const int THURS = 3;
const int FRI = 4;
const int SAT = 5;
const int SUN = 6;

enum color c; //объявление переменной типа color
color d; // объявление переменной типа color
enum turn {off,on} a; //объявление типа и переменной
enum {off,on} a; //объявление переменной без указания имени типа

В языке С тип enum эквивалентен типу int.
Это позволяет присваивать целочислен-ные значения непосредственно переменным типа перечисления.
В C++ ведется более строгий контроль за типами данных, и такие присваивания не допускаются.
color d=0; // ошибка

Переменным перечисляемого типа можно присваивать только именные значения перечисляемых констант.
color c=r; //правильно
Целочисленным переменным можно присваивать значения перечисляемых констант.
int c=r;
enum My_Error{Err_read, Err_ write, Err_convert};

My_Error error;

switch (error)

{ case Err_read: {операторы} break;

case Err_ write: {операторы} break;

case Err_convert: {операторы} break;

}

enum chess{pawn,knight,bishop,rook,queen,king}; //шахматные фигуры

{penny,nickel,dime,quarter, half_dollar,dollar}; //монеты

{north,south,east,west};

Недостаток перечислений

direction dir1 = east;

cout << dir1 << endl;

Структуры

В отличие от массива структура может содержать элементы разных типов. Данные, входящие в структуру, называются элементами, членами или полями структуры. (В Паскале структурам соответствуют записи.)

Объявление структуры

<== предыдущая лекция | следующая лекция ==>
Конец лекции | Librys.value[0] //ошибка
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 533; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.