static_cast<>
-
Speziell bei static_cast<> und auch bei den anderen, geht ja bei allen analog schätze ich, muss ich in die Klammern den Typ reinschreiben in den ich konvertieren möchte, oder den Typ von dem ich konvertiere?!
Also:long a=12.2342; int b=static_cast<long>(a);oder
long a=12.2342; int b=static_cast<int>(a);Dumme Frage, wa?
MfG
STromberg
-
Hallo
In die spitzen Klammern kommt der Typ, in den Du konvertieren möchtest.
Gruss
-
Warum geht das hier aber nicht:
#include <iostream> #include <string> using namespace std; void func(int a); int main() { int a=func(12); return 0; } void func(int a) { return static_cast<void>(a); }Compiling: C:\MinGW\Andi\casts.cpp
C:\MinGW\Andi\casts.cpp: In function `int main()':
C:\MinGW\Andi\casts.cpp:10: error: void value not ignored as it ought to be
C:\MinGW\Andi\casts.cpp:10: warning: unused variable 'a'
Process terminated with status 1 (0 minutes, 0 seconds)
1 errors, 1 warningsMfG
Stromberg
-
Guck dir einfach mal an was der Typ void in C++ für eine Bedeutung hat. Dann wird dir das klar.
-
Ja, mir is schon klar, das void einfach nichts ist, wenn man halt nix zurückgibt. Aber ich hab gedacht der Witz an dem static_cast is dat man in einer void Funktion mit hilfe eines static_cast trotzdem was zurückgeben kann? Hab ich falsch gedacht, wa?
MfG
Stromberg
-
Eine Funktion mit Rückgabewert void entspricht in den meisten anderen Sprachen einer Procedure, d.h. man kann nichts zurück geben ...