Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Типи, що перераховують

У файлі m_to_k.cpp

//Переклад миль в кілометри

#include <iostream.h>

const double m_to_k = 1.609; //коефіцієнт перетворення

inline double mi_to_km (int miles)

{

return (miles * m_to_k);

}

int main()

{

int miles;

double kilometers;

do {

cout << "\nВведите відстань в милях: ";

cin >> miles;

kilometers = mi_to_km(miles);

cout << "Це приблизно "

<< static_cast<int>(kilometers)

<< "km" << endl;

} while (miles > 0);

}

Ця програма містить дві функції. Кожна з них має власну локальну зону видимості, в якій оголошені її змінні. Кожна змінна має тип. Змінна m_to_k sнsцsалsзована — їй присвоєно значення 1.609, а модифікатор const забезпечує незмінність цього значення. Давати змінним мнемонічні імена — це хороша практика програміста, що робить код само— документованим. Зверніть увагу, що змінна, оголошена як const, має бути ініціалізована у момент оголошення. Ключове слово inline модифікує визначення функції; воно вказує компілятору, що в точці звернення до функції визначальний її код не викликається, а вбудовується.

Тип вираження miles * m_to_k підвищується до double. Зрозуміло, що тип int змінної miles вужчий, ніж double. Інструкція введення cin >> miles приймає введення з клавіатури у формі рядка, що перетворюється в ціле. Наприклад, введене число 5.45 буде перетворене і присвоєне змінній miles як ціле значення 5.

Надійне перетворення static_cast<int> (kilometers) обрізує значення з подвійною точністю до цілого. Без цього явного перетворення змінна kilometers друкувалася б як double.

Ключове слово enum використовується для оголошення особливого цілого типу з набором іменованих цілих констант, званих константами типу, що перераховує, або константами (enumerators), що перераховують. Розглянемо оголошення:

enum suit { clubs, diamonds, hearts, spades };

Тут створюється цілий тип з чотирма назвами мастей карт як цілими іменованими константами. Константи, що перераховують, мають ідентифікатори clubs, diamonds, hearts і spades, а їх значення дорівнюють 0, 1, 2 і 3 відповідно. Ці значення привласнюються за умовчанням, першій константі, що перераховує, дається ціле значення 0. Кожен наступний елемент списку більше на одиницю, ніж його сусід ліворуч. Тепер ідентифікатор suit — це унікальний цілий тип, що відрізняється від інших цілих типів. Такий ідентифікатор називається теговым ім'ям (tag namе).

Константи, що перераховують, можуть бути ініціалізовані довільними цілими константами:

enum ages { laura = 7, ira, harold = 59, philip = harold + 7 };

Константи, що перераховують, можуть бути ініціалізовані цілими виразами. Зверніть увагу, що коли немає явного ініціалізатора, виконується правило за змовчуванням, тобто значення ira дорівнює 8.

Тегові імена і імена констант, що перераховують, мають бути унікальні в межах зони видимості. Значення констант, що перераховують, не обов'язково розрізняються. Константи, що перераховують, можуть бути неявно перетворені до звичайного цілого типу, але не навпаки.

<== предыдущая лекция | следующая лекция ==>
Традиційні перетворення | Тип умовного вираження
Поделиться с друзьями:


Дата добавления: 2013-12-14; Просмотров: 275; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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