|
You last visited: Today at 18:11
Advertisement
Casting (Welche Methode ist besser?)
Discussion on Casting (Welche Methode ist besser?) within the C/C++ forum part of the Coders Den category.
03/20/2013, 20:57
|
#1
|
elite*gold: 338
Join Date: Aug 2010
Posts: 533
Received Thanks: 201
|
Casting (Welche Methode ist besser?)
Hey Leute ich überlege gerade welche der beiden Casting-Methoden besser ist.
C# oder die C++ möglichkeit. Habt ihr Erfahrungen?
c#:
Quote:
#include <iostream>
using namespace std;
int main ()
{
int A = 10 ;
float Faktor = 2.5 ;
int B = 0 ;
B = (int) ( A * Faktor );
cout << "B: " << Faktor << endl;
return 0;
}
|
C++
Quote:
#include <iostream>
using namespace std;
int main ()
{
int A = 10 ;
float Faktor = 2.5 ;
int B = 0 ;
B = static_cast<int> (A*Faktor);
cout << "B: " << B << endl;
return 0;
}
|
|
|
|
03/20/2013, 21:01
|
#2
|
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
|
Kommt drauf an, welche Sprache du verwendest.
Da dein Code hier aber C++ ist, solltest du hier auch static_cast verwenden - ganz einfach.
Merk dir einfach: C-Style casting einfach nur unter C verwenden.
Und btw. ist nirgendwo in deinem Code C# zu erkennen.
|
|
|
03/20/2013, 21:34
|
#3
|
elite*gold: 338
Join Date: Aug 2010
Posts: 533
Received Thanks: 201
|
ja ich verwende C++ jedoch kann man beide methoden verwenden. Ich hab auch schon die (int) also die C# methode in Programmen entdeckt, die mit C++ geschrieben sind
danke für deine Antwort.
|
|
|
03/20/2013, 21:52
|
#4
|
elite*gold: 42
Join Date: Jun 2008
Posts: 5,425
Received Thanks: 1,888
|
Dafug. Dafug. Dafug.
c#, #include, okay.
|
|
|
03/20/2013, 22:44
|
#5
|
elite*gold: 273
Join Date: Sep 2010
Posts: 1,831
Received Thanks: 786
|
Ich kenne Leute die mischen C & C++,
aber C++ und C# ist mir neu...
|
|
|
03/20/2013, 23:37
|
#6
|
elite*gold: 0
Join Date: Jan 2009
Posts: 1,160
Received Thanks: 232
|
Du verwechselst wohl C# mit C. C ist quasi der Vorgänger von C++ und C# ist eine .NET-Sprache von M$.
Ich empfehle dir, den C++ Cast zu nehmen. Laut Google spucken dir die C++ Casts bereits beim Compilen Fehler aus, die dir der C-Cast erst zur Laufzeit verraten hätte.
|
|
|
03/21/2013, 01:19
|
#7
|
elite*gold: 297
Join Date: Dec 2010
Posts: 1,129
Received Thanks: 1,687
|
Casts im C-Style können gefährlich sein, weil ein solcher einer von 5 Casts sein können, ausgewählt nach folgender Reihenfolge:
1. const_cast
2. static_cast
3. static_cast gefolgt von const_cast
4. reinterpret_cast
5. reinterpret_cast gefolgt von const_cast
Dass das ganze sogar bis zum reinterpret_cast gehen kann, macht C-Style casts gefährlich für jeden, der nicht allen dazugehörigen Code genauestens kennt (etwa Cast-Operatoren von Klassen) und deswegen wird in C++ von diesen Casts abgeraten.
Also: In diesem Fall static_cast verwenden!
|
|
|
03/21/2013, 11:09
|
#8
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
|
Quote:
Originally Posted by Delinquenz
Du verwechselst wohl C# mit C. C ist quasi der Vorgänger von C++ und C# ist eine .NET-Sprache von M$.
Ich empfehle dir, den C++ Cast zu nehmen. Laut Google spucken dir die C++ Casts bereits beim Compilen Fehler aus, die dir der C-Cast erst zur Laufzeit verraten hätte.
|
Die Gefahr ist eher, dass es einem keiner sagt, woher der Crash plötzlich kam.
Quote:
Originally Posted by __underScore
Casts im C-Style können gefährlich sein, weil ein solcher einer von 5 Casts sein können, ausgewählt nach folgender Reihenfolge:
1. const_cast
2. static_cast
3. static_cast gefolgt von const_cast
4. reinterpret_cast
5. reinterpret_cast gefolgt von const_cast
Dass das ganze sogar bis zum reinterpret_cast gehen kann, macht C-Style casts gefährlich für jeden, der nicht allen dazugehörigen Code genauestens kennt (etwa Cast-Operatoren von Klassen) und deswegen wird in C++ von diesen Casts abgeraten.
Also: In diesem Fall static_cast verwenden!
|
Nicht zu vergessen dynamic_cast, welchen es in C gar nicht gibt.
|
|
|
03/21/2013, 11:33
|
#9
|
elite*gold: 297
Join Date: Dec 2010
Posts: 1,129
Received Thanks: 1,687
|
Quote:
Originally Posted by MrSm!th
Nicht zu vergessen dynamic_cast, welchen es in C gar nicht gibt.
|
Ich hab ja auch nur von den Sachen geredet, die der C-Style Cast versucht. Aber wie auch immer, zum Thema dynamic_cast: mMn gibt es nur wenige Situationen, in denen dynamic_cast und std::type_info wirklich gebraucht werden, aber es sind sehr mächtige Tools, die im statisch typisierten C++ Sachen wieJavas instanceof-Operator und allgemein RTTI erlauben.
Ich denke jedoch, dass der OP seine Frage ausreichend beantwortet bekommen hat: In C++ sollte man auch C++-Casts benutzen.
|
|
|
 |
Similar Threads
|
Welche SSD ist besser?
02/28/2013 - Hardware Discussions / Questions - 1 Replies
Samsung 840pro Series 128GB SSD
Plextor M5S 128gb (PX-128M5S) SSD
Welche SSD bis 180€ ist die beste?
|
CPU, welche ist besser?
07/01/2012 - Hardware Discussions / Questions - 5 Replies
Hi ihr,
ich hab da ein problem,
ein Kumpel meinte ich soll entweder den CPU nehmen:
Intel Core i5 3570K 4x 3.40GHz So.1155 BOX - Hardware, Notebooks
oder den CPU:
AMD FX Series FX-8120 8x 3.10GHz So.AM3+ TRAY - Hardware, Notebooks
|
Welche ist die beste methode mit PSC's Gold zu bekommen?
02/20/2011 - Nostale - 14 Replies
HaY Leute
Wollte euch fragen, ob man mehr Gold bekommt, wenn man eine PSC hier in BlackMarkt vkt oder die PSC in Taler umwandelt und die Sachen per Shop vkt?^^
Würde mich auf positive rückmeldung freuen
|
Welche Methode um 2010er Files zu Laufen zu bekommen?
01/18/2011 - Metin2 Private Server - 27 Replies
Hi @ all,
sry aber habe in der SuFu nichts finden können.
Methode 1:
Ich lass FerrBSD neu installieren und fange damit an dass ich MySQL einrichte und dan die 2010er SF auf home packe und dort entpacke.
Anschliessend passe ich die configs an und ... woila er läuft nicht -.-
(liegt der Fehler vielleicht dadran dass ich nach dem Ändern der configs dennen nicht nochma 777 Rechte gegeben habe?)
|
Besser Methode wie Playsapn
01/07/2011 - WarRock - 52 Replies
Hi Leute ich will euch nichts vorbehalten und ich kenne eine Methode wie ihr schneller als mit Playsapn eure psc bekommt schreibt mich per pn an weil sonst wäre das fremdwerbung und dass will ja keiner
|
All times are GMT +1. The time now is 18:13.
|
|