Contenu du cours
Types de Données C++
Types de Données C++
Conversion de Type Implicite
En C++, la conversion de type se produit tout le temps.
Elle peut être soit une conversion implicite effectuée automatiquement par le compilateur, soit une conversion explicite, où vous convertissez explicitement les types dans le code. Ce chapitre se concentrera sur la conversion implicite.
Voici un exemple simple où une conversion de type implicite se produit :
main
#include <iostream> int main() { int num = 6.5; 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 il effectuera une conversion de type s'il reçoit autre chose).
- Les flèches rouges représentent une perte de données. Par exemple, si nous convertissons
float
enlong
(ouint
), nous perdrons la partie décimale ; - Les flèches vertes représentent aucune perte de données. Par exemple, nous pouvons convertir en toute sécurité
int
enlong
, et le résultat est le même ; - La 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 en C++ 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
:
Remarque
La chaîne vide et la liste vide sont également converties en
true
.
Merci pour vos commentaires !