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.cpp
123456789#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.cpp
12345678#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.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 }
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!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 4.35
Explizite Typumwandlung
Swipe um das Menü anzuzeigen
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.cpp
123456789#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.cpp
12345678#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.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 }
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!