Diskussion:C++-Programmierung: Typumwandlung

Seiteninhalte werden in anderen Sprachen nicht unterstützt.
Aus Wikibooks

Kritikpunkte[Bearbeiten]

In diesem Kapitel gibts noch viel zu tun, am meisten fallen mir im Moment aber folgende Sachen auf:

  • Der Typ einer Variablen oder eines Ausdrucks kann nicht geändert werden. Ein Cast-Operator erzeugt ein (temporäres) Objekt mit dem angegebenen neuen Typ und einem Wert, der sich aus dem "umzuwandelnden" Ausdruck ergibt. Dieses temporäre Objekt ist in der Regel ein rvalue z.B. geht folgendes nicht: int i; (double)i = 2.0;
  • Wann können implizite Casts verwendet werden, wann muss man sie explizit ausschreiben?
  • Was sind die Risiken bei impliziten Casts? Wie kann man diese zumindest teilweise abmildern (z.B. via "explizit" bei Konstruktoren selbstdefinierter Klassen)
  • Warum sind Casts bei Zeigertypen gefährlich? (Alignment- und Aliasingprobleme)
  • Warum ist reinterpret_cast gefährlich? Was macht reinterpret_cast bei nicht-Zeigern?
  • Wo sind die "function style casts" geblieben? ( double d; ... ; d = double(3+j)/2; )

--RokerHRO 01:05, 23. Aug. 2007 (CEST)[Beantworten]