Conversion de Type Implicite
Glissez pour afficher le menu
La conversion de type se produit en permanence. Elle peut être soit une conversion implicite effectuée automatiquement par le compilateur, soit une conversion explicite, où les types sont convertis explicitement dans le code.
main.cpp
1234567#include <iostream> int main() { int num = 6.5; // Implicit type conversion std::cout << num << std::endl; }
Dans cet exemple, 6.5, un nombre à virgule flottante, est converti implicitement en int (ce qui est réalisé en supprimant la partie décimale).
La conversion de type implicite intervient lorsque le type d'une variable ne correspond pas à celui attendu par le compilateur (par exemple, lors de l'affectation d'une valeur à un int, le compilateur attend un nombre entier et effectuera une conversion de type s'il reçoit autre chose).
- Flèches rouges indiquent une perte de données. Par exemple, si l’on convertit un
floatenlong(ouint), la partie décimale sera perdue ; - Flèches vertes indiquent l’absence de perte de données. Par exemple, il est possible de convertir un
intenlongsans risque, et le résultat reste identique ; - Flèche jaune lors de la conversion de
long(ouint) versfloat(oulong) signifie qu’il peut parfois y avoir une perte de données en raison de la précision insuffisante dufloat(oulong).
main.cpp
1234567891011#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 implicite de type concerne les opérations +, -, *, /. Ces opérations doivent être effectuées sur des variables du même type de données. Si ce n’est pas le cas, C++ effectue automatiquement une promotion de type. Par exemple, int / double -> double / double.
Un autre cas où l’on rencontre la conversion implicite de type concerne les conditions. Par exemple, l’instruction if.
Elle attend que la condition soit de type bool. Mais grâce à la conversion implicite de type, il est possible d’utiliser d’autres types de données comme conditions. Voici une image illustrant comment ils sont convertis en bool :
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion