Expliciete Typeconversie
Veeg om het menu te tonen
Als je werkt met variabelen van het type int, in plaats van alleen getallen in de code, moet je de waarde van een variabele omzetten naar double of float. Dit kan worden gedaan met de volgende syntaxis:
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; }
Er zijn verschillende manieren om expliciet een typeconversie uit te voeren. Deze methode wordt C-stijl conversie genoemd:
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 }
Hoewel deze aanpak beknopt is, geeft het niet duidelijk de bedoeling of aard van de conversie aan, wat kan leiden tot onduidelijkheid en mogelijk verkeerd gebruik.
Er zijn meer expliciete en veiligere casting-operatoren beschikbaar die betere controle over typeconversies bieden.
Meestal heb je alleen een static_conversion nodig. Andere casts worden hier niet uitgebreid besproken. Hier is de syntaxis:
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 }
We behandelen het verschil tussen al deze niet. In het algemeen heeft static_cast de voorkeur omdat deze restrictiever is en onverwacht gedrag met complexe datatypes kan voorkomen.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.