Typumwandlung
-
Hallo,
kann mir einer sagen warum man eine Typumwandlung auch cast nennt.
Sprechweise: integer in float casten.Kommt das cast aus dem Englischen oder . Hab jedenfalls keine passende Uebersetzung gefunden.
Danke!
-
Casting - wortwörtlich "gießen", im Sinne von "in eine Form gießen"
-
blurry33 schrieb:
Hallo,
kann mir einer sagen warum man eine Typumwandlung auch cast nennt.
Sprechweise: integer in float casten.Eine häufig unwesentliche Ungenauigkeit. Ein Cast ist ein Ausdruck, in dem einer der 6 Cast-Operatoren auf einen Operanden wirkt. Die resultierende Transformation des Ausgangswertes in den Wert eines ggf. anderen Typs ist die eigentliche Typumwandlung. Der Unterschied ist wichtig, weil implizite Typumwandlungen auch in Abwesenheit von Cast-Operatoren durchgeführt werden, wenn der Kontext es verlangt.
An "integer in float casten" ist insoweit nichts auszusetzen, damit drückt man aus, dass der Ausgangswert explizit unter Zuhilfename eines Cast-Operators umgewandelt wird.
-
hab nur 4 Cast Operatoren gefunden.
static_cast, const_cast, reinterpret_cast und dynamic_cast
-
+ C - Cast : ( (int) value )
+ function-style cast : ( int ( value ) )
-
blurry33 schrieb:
hab nur 4 Cast Operatoren gefunden.
static_cast, const_cast, reinterpret_cast und dynamic_cast
Das sind Schlüsselworte, keine Operatoren (wiederum Unterschied, der in den meisten Diskussionen unwesentlich ist). Operatoren wären
static_cast<T>( ) const_cast<T>( ) reinterpret_cast<T>( ) dynamic_cast<T>( ) T( ) (T)Allerdings definiert der Standard den Begriff Operator nicht. Dieser erschließt sich nur indirekt, denn Ausdrücke sind eine Abfolge von Operatoren und Operanden, die eine Berechnung bewirken - man kann hier also auch anderer Ansicht sein.
Es sindstatic_cast<T>(x) const_cast<T>(x) reinterpret_cast<T>(x) dynamic_cast<T>(x) T(x) (T)xdie Ausdrucksformen, die der Standard ausdrücklich als Cast-Ausdrücke bezeichnet.
Man kann natürlich auch der Ansicht sein, dass T ein Operand ist. Den Präzendenzfall eines Typs als Operand kennen wir z.B. vom sizeof-Operator.