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
Types de Données C++
course content

Contenu du cours

Types de Données C++

Types de Données C++

1. Introduction
2. Types de Données Numériques
3. Type de Données Texte
4. Autres Types de Données et Concepts

book
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.

cpp

main

copy
1234567
#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 en long (ou int ), 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 en long , et le résultat est le même ;

  • Flèche jaune dans la conversion de long (ou int ) en float (ou long ) signifie que parfois nous subissons une perte de données en raison de la précision insuffisante de float (ou long ).

cpp

main

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

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 6

Demandez à l'IA

expand
ChatGPT

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

course content

Contenu du cours

Types de Données C++

Types de Données C++

1. Introduction
2. Types de Données Numériques
3. Type de Données Texte
4. Autres Types de Données et Concepts

book
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.

cpp

main

copy
1234567
#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 en long (ou int ), 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 en long , et le résultat est le même ;

  • Flèche jaune dans la conversion de long (ou int ) en float (ou long ) signifie que parfois nous subissons une perte de données en raison de la précision insuffisante de float (ou long ).

cpp

main

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

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 6
Nous sommes désolés de vous informer que quelque chose s'est mal passé. Qu'est-il arrivé ?
some-alt