English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ Tutoriel de base

C++ Contrôle de flux

C++ Fonction

C++ Tableau & chaîne

C++ Structure de données

C++ Classe & objet

C++ Pointeurs

C++ Héritage

C++ Tutoriel STL

C++ Manuel de référence

C++ Conversions de type

Dans ce tutoriel, nous allons apprendre C en utilisant des exemples ++Connaissances de base sur les conversions de type

C ++Permet de convertir des données d'un type en données d'un autre type. Cela s'appelle une conversion de type.

C ++Il y a deux types de conversions de type.

  1. Conversion implicite

  2. Conversion explicite (également appelée conversion de type force)

Conversions associées : convertir C ++Conversion de chaîne en int  C ++ Conversion de String en float / double

Conversion implicite

La conversion de type effectuée automatiquement par le compilateur s'appelle une conversion implicite. Ce type de conversion est également appeléConversion automatique

Laissez-nous voir deux exemples de conversion implicite de type.

exemple1:Convertir de int à double

// Comment fonctionne la conversion implicite de type
#include <iostream>
using namespace std;
int main() {
   // Allouer une valeur int à num_int
   int num_int = 9;
   // Déclarer une variable double
   double num_double;
 
   // Conversion implicite
   // Affecter une valeur int à une variable double
   num_double = num_int;
   cout << "num_int = " << num_int << endl;
   cout << "num_double = " << num_double << endl;
   return 0;
}

résultat de sortie

num_int = 9
num_double = 9

Dans le programme, nous avons alloué des données int à une variable double.

num_double = num_int;

Ici, avant d'affecter une valeur int à la variable num_double, elle sera automatiquement convertie en double par le compilateur. C'est un exemple de conversion implicite de type.

exemple2:Convertir automatiquement de double à int

//Comment fonctionne la conversion implicite de type
#include <iostream>
using namespace std;
int main() {
   int num_int;
   double num_double = 9.99;
   // Conversion implicite
   // Affecter une valeur double à une variable int
   num_int = num_double;
   cout << "num_int = " << num_int << endl;
   cout << "num_double = " << num_double << endl;
   return 0;
}

résultat de sortie

num_int = 9
num_double = 9.99

Dans le programme, nous avons alloué des données double à une variable int.

num_double = num_int;

ici, avant de distribuer la valeur double à la variable num_int, le compilateur convertit automatiquement en int. C'est également un exemple de conversion de type implicite.

attention:parce que int ne peut pas avoir de partie décimale, dans l'exemple ci-dessus, les nombres après la virgule ont été tronqués.

perte de données pendant la conversion (conversion de réduction)

comme nous pouvons le voir dans les exemples ci-dessus, la conversion d'un type de données en un autre type de données peut facilement entraîner une perte de données. Cela se produit lorsque les données de type plus grand sont converties en données de type plus petit.

peut entraîner une perte de données pendant la conversion de type

C ++conversion explicite

quand l'utilisateur change manuellement les données d'un type à un autre type, cela s'appelleconversion explicitece type de conversion est également appelé

conversion de type forcé ++Nous pouvons utiliser trois méthodes principales pour convertir explicitement un type en C

  1. dans l'utilisation explicite de la conversion. Ils sont les suivants:

  2. notation de conversion de type (également appelé ancien symbole de conversion)++de type conversion (également appelé ancien style c)

  3. Opérateurs de conversion de type

conversion de style C

comme son nom l'indique, ce type de conversion estconversion de style C du langage Cconnu également sous le nom denotation de conversion explicite

La syntaxe de ce style est:

(data_type)expression;

par exemple,

// initialisation de la variable int
int num_int = 26;
// déclaration de la variable double
double num_double;
// conversion de int en double
num_double = (double)num_int;

conversion de style de fonction

Nous pouvons également utiliser des fonctions similaires pour convertir les données d'un type à un autre type.

la syntaxe de ce type est:

data_type(expression);

par exemple,

// initialisation de la variable int
int num_int = 26;
// déclaration de la variable double
double num_double;
// conversion de int en double
num_double = double(num_int);

exemple3:conversion de type

#include <iostream>
using namespace std;
int main() {
    // initialisation de la variable double
    double num_double = 3.56;
    cout << "num_double = " << num_double << endl;
    // conversion de style C de double à int
    int num_int1 = (int)num_double;
    cout << "num_int1   = " << num_int1 << endl;
    // style de conversion de fonction de double à int
    int num_int2 = int(num_double);
    cout << "num_int2   = " << num_int2 << endl;
    return 0;
}

résultat de sortie

num_double = 3.56
num_int1   = 3
num_int2   = 3

Nous utilisonsConversion de type C styleetLe style de conversion de fonction est utilisé pour la conversion de type,Et affichez le résultat. Comme ils exécutent la même tâche, ils nous donnent le même résultat.

Opérateurs de conversion de type

En plus de ces deux conversions de type, C ++Il existe également quatre opérateurs pour la conversion de type. Ils sont appelésOpérateurs de conversion de typeIls sont :

  • static_cast

  • dynamic_cast

  • const_cast

  • reinterpret_cast

Nous en apprendrons davantage sur ces conversions obligatoires dans les prochaines leçons.