static_cast, const_cast

static_cast, const_cast - C++ - Programmation

Marsh Posté le 23-11-2006 à 17:04:57    

Bonjour,
 
Est-ce que cette ligne est du 100% C ou aussi du C++ ? :
int a  = (int)2.0;
 
Quel est l'interet d'utiliser ceci au lieu de la première ligne ? :
int a = static_cast<int>(2.0);
 
Merci d'avance...

Reply

Marsh Posté le 23-11-2006 à 17:04:57   

Reply

Marsh Posté le 23-11-2006 à 17:12:59    

Reply

Marsh Posté le 23-11-2006 à 18:30:34    

Merci mais est ce que "int a  = (int)2.0;" exsite encore en C++, parce je voit encore souvent ce genre de transtypage dans un programme c++...

Reply

Marsh Posté le 23-11-2006 à 18:36:26    

oui ça existe encore pour des raisons de compatibilité mais c'est caca

Reply

Marsh Posté le 23-11-2006 à 18:37:04    

surtout que dans ton cas, int a = (int)2.0 est particulièrement stupide.

Reply

Marsh Posté le 23-11-2006 à 18:38:21    

Merci...
Oui je sais que c'est stupide mais s'était juste un exemple ;)

Reply

Marsh Posté le 23-11-2006 à 18:41:17    

ce n'est pas la peine de mettre des cast si y en a pas besoin de toutes façons. si les *_cast ont des longs noms, ce n'est pas que pour les différencier : c'est aussi pour éviter les abus.

Reply

Marsh Posté le 23-11-2006 à 18:42:17    

void *p;
int *i = static_cast<int*>(p); // ça ça a du sens.
// mais
p = i;

Reply

Marsh Posté le 23-11-2006 à 20:44:17    

le cast C avec les parentheses est equivalent à un const_cast et un reinterpret_cast. Puissant mais dangereux.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed