Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Eksplisiittinen Tyyppimuunnos | Muut Tietotyypit ja Käsitteet
C++ Tietotyypit

bookEksplisiittinen 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

main.cpp

copy
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

main.cpp

copy
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

main.cpp

copy
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.

question mark

Valitse kaikki oikeat tavat suorittaa tyyppimuunnos.

Select all correct answers

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 7

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 4. Luku 7
some-alt