Eksplisitt Typekonvertering
Sveip for å vise menyen
Hvis du arbeider med variabler av typen int, og ikke bare tall i koden, må du konvertere verdien til en variabel til double eller float. Dette kan gjøres ved å bruke følgende syntaks:
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; }
Det finnes flere måter å utføre eksplisitt typekonvertering på. Denne kalles C-stil konvertering:
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 }
Selv om denne tilnærmingen er kortfattet, angir den ikke tydelig hensikten eller typen av konvertering, noe som kan føre til tvetydighet og potensiell feilbruk.
Det finnes mer eksplisitte og sikrere typekonverteringsoperatorer som gir bedre kontroll over typekonverteringer.
Som regel trenger du kun en static_conversion. Vi vil ikke gå i dybden på andre konverteringer. Her er syntaksen:
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 }
Vi vil ikke gå gjennom forskjellen mellom alle disse. Generelt er static_cast å foretrekke siden det er mer restriktivt og kan forhindre uventet oppførsel med komplekse datatyper.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår