Contenu du cours
Types de Données C++
Types de Données C++
Conversion de Type Implicite
La conversion de type se produit tout le temps. Elle peut être soit une conversion implicite qui est effectuée automatiquement par le compilateur, soit une conversion explicite, où vous convertissez explicitement les types dans le code.
main
#include <iostream> int main() { int num = 6.5; // Implicit type conversion std::cout << num << std::endl; }
Dans l'exemple, 6.5
, un nombre à virgule flottante, est implicitement converti en int
(ce qui est fait en supprimant la partie décimale).
La conversion de type implicite se produit lorsque le type d'une variable ne correspond pas au type attendu par le compilateur (par exemple, lorsque nous assignons une valeur à int
, le compilateur s'attend à un nombre entier et effectuera une conversion de type s'il reçoit autre chose).
Flèches rouges signifient une perte de données. Par exemple, si nous convertissons
float
enlong
(ouint
), nous perdrons la partie décimale ;Flèches vertes signifient aucune perte de données. Par exemple, nous pouvons convertir en toute sécurité
int
enlong
, et le résultat est le même ;Flèche jaune dans la conversion de
long
(ouint
) enfloat
(oulong
) signifie que parfois nous subissons une perte de données en raison de la précision insuffisante defloat
(oulong
).
main
#include <iostream> #include <iomanip> int main() { int num_int = 123456789; float num_float = num_int; std::cout << std::setprecision(10); std::cout << num_float << std::endl; }
Un autre exemple de conversion de type implicite est les opérations +
, -
, *
, /
. Elles doivent être effectuées sur des variables du même type de données. Si ce n'est pas le cas, C++ effectue implicitement la promotion de type. Par exemple, int /
double -> double /
double.
Un autre exemple où vous pouvez rencontrer la conversion de type implicite est les conditions. Par exemple, l'instruction if
.
Elle s'attend à ce que la condition soit de type bool
. Mais grâce à la conversion de type implicite, nous pouvons passer d'autres types de données comme conditions. Voici une image montrant comment ils sont convertis en bool
:
Merci pour vos commentaires !