КАТЕГОРИИ: Архитектура-(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; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |