Unterschied zwischen Implizite und Explizite Typumwandlung(Casts)
-
Hallo liebes Forum,
soweit wie ich verstanden habe gibt es Typumwandlungen womit ich z.B. int Wert in float oder umgedreht konvertieren kann. Nun meine Frage: Wo ist der Unterschied zwischen der Impliziten und der Explizten konvertierung?
Zero_x
-
implizit:
float f = 8;
explitit:
int i = 8; float f = (float)i;
-
zwutz schrieb:
explitit:
int i = 8; float f = (float)i;
Ürg. Bitte lasst doch diese beschissenen C-Casts nicht ins C++-Forum. In C++ regelt man das über einen 'static_cast', wobei der in diesem Fall überflüssig ist, da die implizite Umwandlung hier ja existiert. Folgendes wäre sinnvoller (da nicht anders möglich):
float f = 8.0f; int i = static_cast<int>(f);
-
Hallo Konrad Rudolph,
noch eine kleine Frage: Wo sind die Unterschiede zwischen explizit und implizit?
Zero_x
-
zero_x schrieb:
noch eine kleine Frage: Wo sind die Unterschiede zwischen explizit und implizit?
Sollte man doch sehen: implizite Umwandlungen werden implizit vorgenommen, also ohne, dass sie im Code stehen, explizite hingegen stehen explizit als Cast-Anweisung im Code.
-
Konrad Rudolph schrieb:
Folgendes wäre sinnvoller (da nicht anders möglich):
float f = 8.0f; int i = static_cast<int>(f);
Es führt einfach zu einer Warnung, weil Daten verloren gehen. Deshalb ist der Cast auch zu empfehlen. Aber möglich ist folgendes auf jeden Fall:
float f = 8.0f; int i = f;