C++ Primer Aufgabe
-
Was für C++ Casts würdet ihr bei folgenden Beispielen verwenden:
int ival; double dval; const string *ps; char *pc; void *pv; pc = (void*)ps; ival = int(*pc); pv = &dval; pc = (char*) pv;Meine Lösung:
-reinterpret
-reinterpret
-ka
-staticAber ich glaub nicht dass des unbedingt stimmt.

MfG
Stromberg
-
a) reintrpret_cast (besser garkeinen, da lässt man besser die Finger von)
b) garkeinen cast. pc dereferenzieren gibt einen char, der ist implizit in einen int konvertierbar
c) ohne cast lassen wie im C-Beispiel. &dval gibt einen double*, der ist (wie jeder Pointer) in void* konvertierbar
d)static_cast
-
pumuckl schrieb:
a) reintrpret_cast (besser garkeinen, da lässt man besser die Finger von)
Nein, a) erfordert zusätzlich einen
const_cast.Ansonsten stimme ich dir aber zu.

-
Nexus schrieb:
pumuckl schrieb:
a) reintrpret_cast (besser garkeinen, da lässt man besser die Finger von)
Nein, a) erfordert zusätzlich einen
const_cast.Ansonsten stimme ich dir aber zu.

Und zusätzlich würde ich nicht ein
reinterpret_cast<void*>machen, sondern einreinterpret_cast<char*>, sonst gibt es einen Kompilerfehler. Wieso eigentlich den Umweg übervoid*im C-Cast?Grüssli
-
Dravere schrieb:
Und zusätzlich würde ich nicht ein
reinterpret_cast<void*>machen, sondern einreinterpret_cast<char*>, sonst gibt es einen Kompilerfehler.Stimmt, das hab ich eigentlich mal angenommen.
Dravere schrieb:
Wieso eigentlich den Umweg über
void*im C-Cast?Wenn das ein C++-Beispiel sein soll, würde der Cast gar nicht gehen. In C war
void*noch implizit konvertierbar...