Приведення типу - це
Приведення типу (type conversion) - перетворення значення змінної одного типу в значення іншого типу. Виділяють явне і неявне приведення типів.
- При явному приведення вказується тип змінної, до якого необхідно перетворити вихідну змінну.
- При неявному приведення перетворення відбувається автоматично, за правилами, закладеним в даній мові програмування.
- Також в мові можуть бути задані спеціальні функції для приведення.
неявне приведення
Саме приведення відбувається як під час надання значення змінної, так і при операціях порівняння, обчислення виразу. При використанні в вираженні кілька різних типів значення одного або декількох підтипів може бути здійснено перетворення до більш загального типу (супертіпа), з великим діапазоном можливих значень.
Кожен раз при виконанні операції порівняння або привласнення змінні різних типів будуть приведені до єдиного типу. Слід з обережністю використовувати неявне приведення типу. При перекладі числа з дійсного типу в цілочисельний, дрібна частина відсікається. Зворотне приведення з целочисленного типу до матеріального також може привести до зниження точності, що пов'язано з різним поданням речових і цілочисельних чисел на машинному рівні. Наприклад, дійсний тип single стандарту IEEE 754 не може точно уявити число 16777217, в той час як 32-бітний цілочисельний тип може. Це може привести до ситуацій, коли порівняння на рівність одного і того ж числа, представленого типами (int і single) буде видавати помилковий результат (числа не рівні один одному).
Явна приведення типу
Для явного приведення типів деякої змінної перед нею слід вказати в круглих дужках ім'я нового типу, наприклад:
Грубих помилок в даному прикладі від автоматичного приведення типів не відбудеться, тому що змінна C, яка має тип char буде приведена до типу int, так як тут йде мова про «підвищення» типу змінної до старшого в вираженні (змінна С перед привласненням неявно приводиться до типу змінної Y). Але можливий один нюанс - в залежності від машинної реалізації типу char при перетворенні char в int може вийти негативне число, тому рекомендується використовувати явне перетворення, а якщо все-таки є перетворення типу char в int, char оголошувати як беззнаковий (unsigned char).
У мові C ++
У мові C ++ існує чотири різновиди приведення типу. Всі чотири типи записуються у вигляді
Громіздкі ключові слова є нагадуванням програмісту, що приведення типу може спричинити проблеми.
static_cast
- Призначення: Приведення типу за звичайними правилами, коли компілятор відмовляється привести його автоматично (відрізняється від застосовуваного в Сі (type_to) expression_from тільки тим, що з покажчиками на довільні типу не працює, може застосовуватися тільки для перетворення void * до іншого вказівником і для перетворення вниз по ієрархії класів; для довільних покажчиків застосовується reinterpret_cast). застосовується:
- для обчислень в ширшому числовому типі (наприклад, для дрібних обчислень з цілими числами);
- щоб позбутися від попередження «Можлива втрата точності» при перекладі в більш вузький числовий тип;
- для покажчиків і посилань при конвертації в батьківський тип;
- для типів з конструкторами або операціями конвертації на зразок operator type_to;
- в шаблонах - компілятор вже при спеціалізації шаблону вирішує, які операції використовувати;
- в операції. у якій then - і else -частини повинні мати один тип.
- Обмеження на expression_from. немає.
- Обмеження на type_to. повинен знайтися спосіб перетворення в type_to.
- Виробляє чи код: в загальному випадку так.
- Можливі помилки: відносно безпечно. Логічні помилки можливі, якщо привести в неправильний тип або взагалі пропустити приведення, коли воно потрібне. Не виключено, що після перетворення з'явиться тимчасовий об'єкт. який буде благополучно знищений разом з усіма змінами (більшість компіляторів на це видають попередження).
const_cast
reinterpret_cast
Дивитися що таке "Приведення типу" в інших словниках:
Приведення типів - приведення типу (type conversion) вельми важлива частина багатьох мов програмування, особливо функціональних. Чи означає цей термін наступне: якщо в якийсь момент тип змінної в складі вираження не заданий, він прораховується (виводиться) ... ... Вікіпедія
Знижує приведення - В об'єктно орієнтованому програмуванні, що знижує приведення (англ. Downcasting) або «уточнення типу» (англ. Type refinement) акт приведення типу, що посилається на базовий клас, до одного з його похідних класів. В ... ... Вікіпедія
Динамічна ідентифікація типу даних - Не слід плутати з динамічною типізацією. Динамічна ідентифікація типу даних (англ. Run time type information, Run time type identification, RTTI) механізм в деяких мовах програмування, який дозволяє визначити тип ... ... Вікіпедія
ГОСТ 22615-77: Система "людина-машина". Вимикачі і перемикачі типу "Тумблер". Загальні ергономічні вимоги - Термінологія ГОСТ 22615 77: Система "людина машина". Вимикачі і перемикачі типу "Тумблер". Загальні ергономічні вимоги оригінал документа: 1. Вимикач (перемикач) типу «Тумблер» вимикач (перемикач), ... ... Словник-довідник термінів нормативно-технічної документації
Порівняння C Sharp і Java - Правильний заголовок цієї статті Порівняння C # і Java. Він показаний некоректно через технічні обмеження. Порівняння мов програмування Загальне порівняння Основний синтаксис Основні інструкції Масиви Асоціативні масиви Операції з ... ... Вікіпедія
Типізації - Тип даних фундаментальне поняття теорії програмування. Тип даних визначає безліч значень, набір операцій, які можна застосовувати до таких значень, і, можливо, спосіб реалізації зберігання значень і виконання операцій. Будь-які ... ... Вікіпедія
Тип даних - (зустрічається також термін вид даних) фундаментальне поняття теорії програмування. Тип даних визначає безліч значень, набір операцій, які можна застосовувати до таких значень і, можливо, спосіб реалізації зберігання значень і ... ... Вікіпедія
- Приведення типу. Джессі Рассел. Ця книга буде виготовлена в відповідності з Вашим замовленням за технологією Print-on-Demand. High Quality Content by WIKIPEDIA articles! Приведе? Ня ти? Па (type conversion) - перетворення ... Детальніше Купити за 998 руб
- Рівняння типу згортки. Ф. Д. Гахов, Ю. І. Черський. У книзі вирішуються інтегральні рівняння з ядрами, що залежать від різниці аргументів, а також деякі граничні задачі математичної фізики, що зводяться до такімінтегральним рівнянням. ... Детальніше Купити за 360 руб