Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Implizite Typumwandlung | Weitere Datentypen und Konzepte
C++-Datentypen

bookImplizite Typumwandlung

Swipe um das Menü anzuzeigen

Typumwandlungen finden ständig statt. Sie können entweder implizite Umwandlungen sein, die automatisch vom Compiler durchgeführt werden, oder explizite Umwandlungen, bei denen die Typen im Code explizit umgewandelt werden.

main.cpp

main.cpp

copy
1234567
#include <iostream> int main() { int num = 6.5; // Implicit type conversion std::cout << num << std::endl; }

Im Beispiel wird 6.5, eine Gleitkommazahl, implizit in int umgewandelt (wobei der Dezimalteil entfernt wird).

Implizite Typumwandlung erfolgt, wenn der Typ einer Variablen nicht mit dem vom Compiler erwarteten Typ übereinstimmt (z. B. wenn einem int ein Wert zugewiesen wird, erwartet der Compiler eine Ganzzahl und führt eine Typumwandlung durch, falls er etwas anderes erhält).

  • Rote Pfeile stehen für Datenverlust. Zum Beispiel geht beim Konvertieren von float zu long (oder int) der Dezimalteil verloren;
  • Grüne Pfeile stehen für keinen Datenverlust. Zum Beispiel kann int sicher in long umgewandelt werden, das Ergebnis bleibt gleich;
  • Gelber Pfeil bei der Umwandlung von long (oder int) zu float (oder long) bedeutet, dass es manchmal zu einem Datenverlust aufgrund unzureichender Genauigkeit von float (oder long) kommt.
main.cpp

main.cpp

copy
1234567891011
#include <iostream> #include <iomanip> int main() { int num_int = 123456789; float num_float = num_int; std::cout << std::setprecision(10); std::cout << num_float << std::endl; }

Ein weiteres Beispiel für implizite Typumwandlung sind die Operationen +, -, *, /. Diese sollten auf Variablen mit demselben Datentyp ausgeführt werden. Ist dies nicht der Fall, führt C++ automatisch eine Typanpassung durch. Zum Beispiel: int / double -> double / double.

Ein weiteres Beispiel, bei dem eine implizite Typumwandlung auftritt, sind Bedingungen. Zum Beispiel die if-Anweisung.

Sie erwartet, dass die Bedingung vom Typ bool ist. Dank der impliziten Typumwandlung können jedoch auch andere Datentypen als Bedingungen verwendet werden. Hier ist eine Abbildung, die zeigt, wie sie in bool umgewandelt werden:

question mark

Welche der folgenden Zuweisungen kann aufgrund einer impliziten Typumwandlung in C++ zu Datenverlust führen?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 6

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Abschnitt 4. Kapitel 6
some-alt