implizites Casting (1/4)

Bei den elementaren Typen wie int, float, unsigned char usw. ist von C++ eine Typumwandlung zwischen den einzelnen Typen vordefiniert, so daß man voriges Beispiel ohne Probleme programmieren kann. Operationen werden in dem Typ durchgeführt, der mehr Informationen speichern kann. Die Addition einer ganzen Zahl mit einer Fließkommazahl wird also in Fließkommazahlen durchgeführt. Das Ergebnis wird dann in den Typ konvertierti, der auf der linken Seite der Zuweisung (der sogenannte LValue) steht. Diese automatische Umwandlung nennt man implizites Casting

Es findet keine Typüberprüfung statt. So werden während der Laufzeit keine Überläufe gemeldet, wie das z.B. in Pascal üblich ist. Werden zum Beispiel zwei ganze Zahlen derart subtrahiert, daß eine negative Zahl herauskommt und ist die Variable, der das Ergebnis zugewiesen wird, vom Typ unsigned, so wird die Bitrepräsentation der negativen Zahl übernommen und es kommt ein sehr hoher Wert heraus. Hier trägt der Programmierer eigene Verantwortung!