Pensez à lire la Charte avant de poster !

$\newcommand{\K}{\mathbf K}$


Les-Mathematiques.net - Cours de mathématiques supérieures
 Les-Mathematiques.net - Cours de mathématiques universitaires - Forum - Cours à télécharger

A lire
Deug/Prépa
Licence
Agrégation
A télécharger
Télécharger
132 personne(s) sur le site en ce moment
E. Cartan
A lire
Articles
Math/Infos
Récréation
A télécharger
Télécharger
Théorème de Cantor-Bernstein
Théo. Sylow
Théo. Ascoli
Théo. Baire
Loi forte grd nbre
Nains magiques
 
 
 
 
 

Faut-il cast ou pas cast en C++ ?

Envoyé par Saturne 
Faut-il cast ou pas cast en C++ ?
il y a six mois
Bonjour
Après avoir programmé un algo en R, en Haskell et en Julia, je l'ai maintenant programmé en C++ (en fait en Rcpp, c'est une librairie R pour faire facilement du C++ exportable dans R, bref peu importe). Mais je ne sais pas si j'ai de bonnes pratiques dans ce langage.

J'ai une question sur le "cast" (je ne sais pas comment on dit en français). Supposons que j'aie un double x et un int i, et je veux faire la division x / i. Je peux alors faire simplement x / i, ça marche car C(++) reconnaîtra bien une division de flottants. Ou bien je peux faire le cast: x / (double)i. Quelle est la meilleure pratique ?

Maintenant supposons que j'aie aussi un double y et je veux faire x / i et y / i. Est-ce que je gagne quelque chose si je fais un seul cast au lieu de deux, ainsi :
double i_dbl = (double)i;
double ratio1 = x / i_dbl;
double ratio2 = y / i_dbl;



Edité 1 fois. La dernière correction date de il y a six mois et a été effectuée par AD.
Re: Faut-il cast ou pas cast en C++ ?
il y a six mois
Je ne sais pas ce que sont les bonnes pratiques. M'est avis qu'avant que ça joue un rôle, il faudra des centaines de millions de calculs.

Anyway, en bon français on parle de conversion de type, de coercition ou de cast (avoue qu'en italique pour indiquer l'emprunt d'une langue étrangère, c'est tout de suite plus classe !).
afk
Re: Faut-il cast ou pas cast en C++ ?
il y a deux mois
Bonjour, le cast est automatique (implicite) dans ce cas. Les operateurs arithmetiques operent uniquement sur variables du meme type. Ici on doit retourner un double donc l'int va etre caster par le compilateur. Donc la bonne pratique est de ne pas alourdir le code pour le lecteur et de laisser le compilateur faire son travail. Une autre bonne pratique en C++ est d'utiliser static_cast<double>(x) plutot que le cast a la C: (double) x. C'est exactement la meme chose mais la syntaxe est plus claire.
Re: Faut-il cast ou pas cast en C++ ?
il y a deux mois
Bonjour,

Tu peux dire "transtypage", mais j'ai plutôt l'habitude de dire "cast" et même d'employer le verbe "caster".

Cordialement,

Rescassol
Seuls les utilisateurs enregistrés peuvent poster des messages dans ce forum.

Cliquer ici pour vous connecter

Liste des forums - Statistiques du forum

Total
Discussions: 140 679, Messages: 1 375 822, Utilisateurs: 25 642.
Notre dernier utilisateur inscrit Cépafo.


Ce forum
Discussions: 2 377, Messages: 17 506.

 

 
©Emmanuel Vieillard Baron 01-01-2001
Adresse Mail:

Inscription
Désinscription

Actuellement 16057 abonnés
Qu'est-ce que c'est ?
Taper le mot à rechercher

Mode d'emploi
En vrac

Faites connaître Les-Mathematiques.net à un ami
Curiosités
Participer
Latex et autres....
Collaborateurs
Forum

Nous contacter

Le vote Linux

WWW IMS
Cut the knot
Mac Tutor History...
Number, constant,...
Plouffe's inverter
The Prime page