Eksplisitt Typekonvertering
Sveip for å vise menyen
Hvis du arbeider med variabler av typen int, og ikke bare tall i koden, må du konvertere verdien av en variabel til double eller float. Dette kan gjøres med 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, viser den ikke tydelig hensikten eller typen av konvertering, noe som kan føre til tvetydighet og potensiell feilbruk.
Det finnes mer eksplisitte og sikrere casting-operatorer som gir bedre kontroll over typekonverteringer.
Som regel trenger du bare en static_conversion. Vi vil ikke gå i dybden på andre casts. 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