Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Conversion de Type Implicite | Autres Types de Données et Concepts
Practice
Projects
Quizzes & Challenges
Quiz
Challenges
/
Types de Données en C++

bookConversion 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

main.cpp

copy
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 float en long (ou int), 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 int en long sans risque, et le résultat reste identique ;
  • Flèche jaune lors de la conversion de long (ou int) vers float (ou long) signifie qu’il peut parfois y avoir une perte de données en raison de la précision insuffisante du float (ou long).
main.cpp

main.cpp

copy
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 :

question mark

Laquelle des affectations suivantes peut entraîner une perte de données en raison d'une conversion de type implicite en C++ ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 6

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Section 4. Chapitre 6
some-alt