Неявне Перетворення Типів
Свайпніть щоб показати меню
Перетворення типів відбувається постійно. Воно може бути або неявним перетворенням, яке виконується автоматично компілятором, або явним перетворенням, коли типи перетворюються безпосередньо у коді.
main.cpp
1234567#include <iostream> int main() { int num = 6.5; // Implicit type conversion std::cout << num << std::endl; }
У цьому прикладі 6.5, число з плаваючою комою, неявно перетворюється на int (відкидається дробова частина).
Неявне перетворення типу відбувається, коли тип змінної не збігається з типом, який очікує компілятор (наприклад, коли ми присвоюємо значення змінній типу int, компілятор очікує ціле число і виконає перетворення типу, якщо отримає інший тип даних).
- Червоні стрілки позначають втрату даних. Наприклад, якщо ми перетворюємо
floatнаlong(абоint), десяткова частина буде втрачена; - Зелені стрілки позначають відсутність втрати даних. Наприклад, можна безпечно перетворити
intнаlong, і результат залишиться тим самим; - Жовта стрілка при перетворенні з
long(абоint) наfloat(абоlong) означає, що іноді може відбутися втрата даних через недостатню точністьfloat(абоlong).
main.cpp
1234567891011#include <iostream> #include <iomanip> int main() { int num_int = 123456789; float num_float = num_int; std::cout << std::setprecision(10); std::cout << num_float << std::endl; }
Ще один приклад неявного перетворення типів — це операції +, -, *, /. Вони повинні виконуватися над змінними одного типу даних. Якщо це не так, C++ неявно виконує підвищення типу. Наприклад, int / double -> double / double.
Ще один приклад, де можна зустріти неявне перетворення типів — це умови. Наприклад, оператор if.
Він очікує, що умова буде типу bool. Але завдяки неявному перетворенню типів можна передавати інші типи даних як умови. Ось зображення, яке показує, як вони перетворюються на bool:
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат