Warum benötigen wir Typumwandlungen?

Typumwandlung benötigt man schon bei einfachen Rechenoperationen. Sehen wir uns ein einfaches Beispiel an:

  int i, j;
  double x, y;

  i = 3;
  x = 4.5;
  y = i + x; // a) double = int + double
  j = i + x; // b) int = int + double

ad a) interpretiere intuitiv 3 als 3.0 ad b) hier ist nicht klar, wie mit der Kommazahl umzugehen ist.

Der erste Fall ist auch in Sprachen wie Pascal erlaubt, der zweite hingegen in den meisten Sprachen verboten: Die Bildung der Ergebnisses ist nicht definiert.

In C++ hingegen ist auch der Fall b) erlaubt. Typen werden nach besonderen Regeln in andere Typen umgewandelt, so daß Operationen auf ihnen möglich sind, die ursprünglich nicht vorgesehen waren.

Bei objektorientierter Programmierung und Pointerprogrammierung werden wir noch komplexere Motivationen kennenlernen, wozu Casting nötig ist.