Kursinhalt
C++ Datentypen
C++ Datentypen
Explizite Typumwandlung
Wenn Sie mit Variablen vom Typ int
arbeiten, anstatt nur mit Zahlen im Code, müssen Sie den Wert einer Variablen in double
oder float
umwandeln. Dies kann mit folgendem Syntax erreicht werden:
main
#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; }
Es gibt mehrere Möglichkeiten, eine Typumwandlung explizit durchzuführen. Diese wird als C-Style-Konvertierung bezeichnet:
main
#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 }
Obwohl dieser Ansatz prägnant ist, zeigt er nicht klar die Absicht oder die Natur der Umwandlung an, was zu Mehrdeutigkeiten und potenziellem Missbrauch führen kann.
Es gibt explizitere und sicherere Casting-Operatoren, um eine bessere Kontrolle über Typumwandlungen zu ermöglichen.
Meistens benötigen Sie nur eine static_conversion
. Wir werden andere Casts nicht ausführlich besprechen. Hier ist die Syntax:
main
#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 }
Wir werden den Unterschied zwischen all diesen nicht behandeln. Im Allgemeinen ist static_cast
vorzuziehen, da es restriktiver ist und unerwartetes Verhalten mit komplexen Datentypen verhindern kann.
Danke für Ihr Feedback!