Zwar ist der Mechanismus von C++ zur automatischen (impliziten) Typumwandlung recht komfortabel, aber wie wir oben bei der Integerdivision gesehen haben, gibt es Situationen, in denen uns dieses Verfahren nicht genügt. Somit müssen wir noch eine weitere Möglichkeit zur Typumwandlung kennenlernen.
Der Wert einer Variablen kann in einen Wert eines anderen Typs umgewandelt werden, indem man einfach den neuen Typ in Klammern vor den ursprünglichen Wert oder die Variable schreibt. Man fürt eine sogenannte explizite Typumwandlung durch.
int i = 3, j = 4, k; double x = 2.5, y; y = (double) i + (double) j; // 3.0 + 4.0 = 7.0 y = (double) (i+j) // 3+4 = 7 ==> 7.0 (*) y = 3.5; i = (int) x + (int) y; // 2 + 3 = 5 ==> 5 i = (int) (x+y) // 2.5 + 3.5 = 6.0 ==> 6 (*)
Dabei behalten die ursprünglichen Variablen ihren Wert und Typ bei. Nur für
die Zwischenrechnung wird der neue Wert angenommen. In den mit (*)
gekennzeichneten Zeilen war die explizite Umwandlung unnötig, da sowieso
implizit umgewandelt wird.