Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 18:11

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Casting (Welche Methode ist besser?)

Discussion on Casting (Welche Methode ist besser?) within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
erudite's Avatar
 
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;
}
erudite is offline  
Old 03/20/2013, 21:01   #2
 
Schlüsselbein's Avatar
 
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.
Schlüsselbein is offline  
Old 03/20/2013, 21:34   #3
 
erudite's Avatar
 
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.
erudite is offline  
Old 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.
MoepMeep is offline  
Old 03/20/2013, 22:44   #5
 
.SkyneT.'s Avatar
 
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...
.SkyneT. is offline  
Old 03/20/2013, 23:37   #6

 
Delinquenz's Avatar
 
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.
Delinquenz is offline  
Old 03/21/2013, 01:19   #7
 
Raz9r's Avatar
 
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!
Raz9r is offline  
Old 03/21/2013, 11:09   #8


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Quote:
Originally Posted by Delinquenz View Post
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 View Post
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.
MrSm!th is offline  
Old 03/21/2013, 11:33   #9
 
Raz9r's Avatar
 
elite*gold: 297
Join Date: Dec 2010
Posts: 1,129
Received Thanks: 1,687
Quote:
Originally Posted by MrSm!th View Post
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.
Raz9r is offline  
Reply


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.