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

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 :

cpp

main

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

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 6
We're sorry to hear that something went wrong. What happened?
some-alt