Eksplisiittinen Tyyppimuunnos
Pyyhkäise näyttääksesi valikon
Jos käsittelet muuttujia, joiden tyyppi on int, etkä pelkästään lukuja koodissa, sinun täytyy muuntaa muuttujan arvo tyypiksi double tai float. Tämä voidaan tehdä seuraavalla syntaksilla:
main.cpp
12345678910#include <iostream> int main() { int num1 = 9; int num2 = 4; std::cout << "No conversion: " << num1 / num2 << std::endl; std::cout << "With conversion: " << (double)num1 / num2 << std::endl; }
Tyyppimuunnoksen voi suorittaa usealla tavalla. Tätä kutsutaan C-tyyliseksi muunnokseksi:
main.cpp
123456789101112#include <iostream> int main() { float num = 6.5; std::cout << (int)num << std::endl; // 6.5 to `int` is 6 std::cout << (bool)num << std::endl; // 6.5 to `bool` is true // Or std::cout << int(num) << std::endl; // 6.5 to `int` is 6 std::cout << bool(num) << std::endl; // 6.5 to `bool` is true }
Vaikka tämä lähestymistapa on ytimekäs, se ei selkeästi ilmaise muunnoksen tarkoitusta tai luonnetta, mikä voi johtaa epäselvyyksiin ja mahdolliseen väärinkäyttöön.
On olemassa eksplisiittisempiä ja turvallisempia tyyppimuunnosoperaattoreita, jotka tarjoavat paremman hallinnan tyyppimuunnoksiin.
Useimmiten tarvitset vain static_conversion-muunnosta. Muita muunnoksia ei käsitellä tarkemmin. Tässä on syntaksi:
main.cpp
12345678#include <iostream> int main() { float num = 6.5; std::cout << static_cast<int>(num) << std::endl; // 6.5 to `int` is 6 std::cout << static_cast<bool>(num) << std::endl; // 6.5 to `bool` is true }
Emme käsittele kaikkien näiden eroja. Yleisesti ottaen static_cast on suositeltavampi, koska se on rajoittavampi ja voi estää odottamattoman käyttäytymisen monimutkaisten tietotyyppien kanssa.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme