Неявне перетворення типів
Свайпніть щоб показати меню
Перетворення типів відбувається постійно. Воно може бути або неявним перетворенням, яке виконується автоматично компілятором, або явним перетворенням, коли типи перетворюються безпосередньо у коді.
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:
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Неявне перетворення типів
Перетворення типів відбувається постійно. Воно може бути або неявним перетворенням, яке виконується автоматично компілятором, або явним перетворенням, коли типи перетворюються безпосередньо у коді.
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:
Дякуємо за ваш відгук!