Перетворення типів у C++
Приведення типу — це в основному перетворення одного типу в інший. Існує два типи перетворення типів:
- Неявне перетворення типу Також відоме як «автоматичне перетворення типу».
- Виконується компілятором самостійно, без будь-якого зовнішнього тригера від користувача.
- Зазвичай має місце, коли у виразі присутній більше одного типу даних. У таких умовах відбувається перетворення типу (підвищення типу), щоб уникнути втрати даних.
- Усі типи даних змінних оновлюються до типу даних змінної з найбільшим типом даних.
bool ->char -> short int -> int -> unsigned int -> long -> unsigned -> long long -> float -> double -> long double
- Під час неявних перетворень можлива втрата інформації, знаки можуть бути втрачені (коли signed неявно перетворюється на unsigned), і може статися переповнення (коли long long неявно перетворюється на float).
- Перетворення за призначенням: Це робиться шляхом явного визначення необхідного типу перед виразом у дужках. Це також можна вважати силовим закиданням.
Синтаксис:
(type) expression
де типу вказує тип даних, у який перетворюється кінцевий результат.
приклад:
// C++ program to demonstrate>// explicit type casting>>#include>using>namespace>std;>>int>main()>{>>double>x = 1.2;>>>// Explicit conversion from double to int>>int>sum = (>int>)x + 1;>>>cout < <>'Sum = '>< < sum;>>>return>0;>}>
Вихід:Sum = 2
- Перетворення за допомогою оператора Cast: Оператор Cast – це an унарний оператор який змушує один тип даних перетворюватися в інший тип даних.
C++ підтримує чотири типи приведення:- Статичний акторський склад
- Dynamic Cast
- Const Cast
- Переосмислити акторів
приклад:
#include>using>namespace>std;>int>main()>{>>float>f = 3.5;>>>// using cast operator>>int>b =>static_cast><>int>>(f);>>>cout < < b;>}>
Вихід:3
Приклад неявного перетворення типу:
// An example of implicit conversion> > #include> using> namespace> std;> > int> main()> {> > int> x = 10;> // integer x> > char> y => 'a'> ;> // character c> > > // y implicitly converted to int. ASCII> > // value of 'a' is 97> > x = x + y;> > > // x is implicitly converted to float> > float> z = x + 1.0;> > > cout < <> 'x = '> < < x < < endl> > < <> 'y = '> < < y < < endl> > < <> 'z = '> < < z < < endl;> > > return> 0;> }> |
Вихід:
x = 107 y = a z = 108Явне перетворення типу: цей процес також називається приведенням типу, і його визначає користувач. Тут користувач може привести результат до певного типу даних.
У C++ це можна зробити двома способами:
Переваги перетворення типу:
- Це робиться, щоб скористатися перевагами певних особливостей ієрархій типів або представлень типів.
- Це допомагає обчислювати вирази, що містять змінні різних типів даних.