Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

Conversion de types C++

Conversion de types C++

Dans ce didacticiel, nous allons découvrir les bases de la conversion de type C++ à l'aide d'exemples.

C++ nous permet de convertir des données d'un type vers celles d'un autre. C'est ce qu'on appelle la conversion de type.

Il existe deux types de conversion de type en C++.

  1. Conversion implicite
  2. Conversion explicite (également connue sous le nom de conversion de type)

Conversion de type implicite

La conversion de type effectuée automatiquement par le compilateur est appelée conversion de type implicite. Ce type de conversion est également appelé conversion automatique.

Examinons deux exemples de conversion de type implicite.

Exemple 1 :Conversion de int en double

// Working of implicit type-conversion

#include <iostream>
using namespace std;

int main() {
   // assigning an int value to num_int
   int num_int = 9;

   // declaring a double type variable
   double num_double;
 
   // implicit conversion
   // assigning int value to a double variable
   num_double = num_int;

   cout << "num_int = " << num_int << endl;
   cout << "num_double = " << num_double << endl;

   return 0;
}

Sortie

num_int = 9
num_double = 9

Dans le programme, nous avons attribué un int données à un double variables.

num_double = num_int;

Ici, le int la valeur est automatiquement convertie en double par le compilateur avant qu'il ne soit assigné au num_double variable. Ceci est un exemple de conversion de type implicite.

Exemple 2 :Conversion automatique de double à int

//Working of Implicit type-conversion

#include <iostream>
using namespace std;

int main() {

   int num_int;
   double num_double = 9.99;

   // implicit conversion
   // assigning a double value to an int variable
   num_int = num_double;

   cout << "num_int = " << num_int << endl;
   cout << "num_double = " << num_double << endl;

   return 0;
}

Sortie

num_int = 9
num_double = 9.99

Dans le programme, nous avons attribué un double données à un int variables.

num_double = num_int;

Ici, le double la valeur est automatiquement convertie en int par le compilateur avant qu'il ne soit assigné au num_int variable. C'est aussi un exemple de conversion de type implicite.

Remarque : Depuis int ne peut pas avoir de partie décimale, les chiffres après la virgule sont tronqués dans l'exemple ci-dessus.

Perte de données lors de la conversion (rétrécissement de la conversion)

Comme nous l'avons vu dans l'exemple ci-dessus, la conversion d'un type de données à un autre est sujette à la perte de données. Cela se produit lorsque des données d'un type plus grand sont converties en données d'un type plus petit.

Conversion explicite C++

Lorsque l'utilisateur modifie manuellement les données d'un type à un autre, on parle de conversion explicite. . Ce type de conversion est également appelé casting de type .

Il existe trois manières principales d'utiliser la conversion explicite en C++. Ce sont :

  1. Transformation de type C (également connue sous le nom de notation de distribution )
  2. Notation de fonction (également connue sous le nom de casting de type dans l'ancien style C++ )
  3. Opérateurs de conversion de type

Mise en forme de type C

Comme son nom l'indique, ce type de casting est favorisé par le langage de programmation C . Il est également connu sous le nom de notation de cast .

La syntaxe de ce style est :

(data_type)expression;

Par exemple,

// initializing int variable
int num_int = 26;

// declaring double variable
double num_double;

// converting from int to double
num_double = (double)num_int;

Diffusion de style de fonction

Nous pouvons également utiliser la fonction comme la notation pour convertir les données d'un type à un autre.

La syntaxe de ce style est :

data_type(expression);

Par exemple,

// initializing int variable
int num_int = 26;

// declaring double variable
double num_double;

// converting from int to double
num_double = double(num_int);

Exemple 3 :Conversion de type

#include <iostream>

using namespace std;

int main() {
    // initializing a double variable
    double num_double = 3.56;
    cout << "num_double = " << num_double << endl;

    // C-style conversion from double to int
    int num_int1 = (int)num_double;
    cout << "num_int1   = " << num_int1 << endl;

    // function-style conversion from double to int
    int num_int2 = int(num_double);
    cout << "num_int2   = " << num_int2 << endl;

    return 0;
}

Sortie

num_double = 3.56
num_int1   = 3
num_int2   = 3

Nous avons utilisé à la fois la conversion de type de style C et le casting de style de fonction pour la conversion de type et affiche les résultats. Puisqu'ils effectuent la même tâche, les deux nous donnent le même résultat.

Opérateurs de conversion de type

Outre ces deux conversions de type, C++ dispose également de quatre opérateurs pour la conversion de type. Ils sont appelés opérateurs de conversion de type . Ce sont :

  • static_cast
  • dynamic_cast
  • const_cast
  • reinterpret_cast

Nous en apprendrons davantage sur ces moulages dans des didacticiels ultérieurs.

Tutoriels recommandés :

  • Chaîne C++ vers int et vice-versa
  • Chaîne C++ à flotter, doubler et vice-versa

Langue C

  1. Conversion de types C#
  2. Types de données C++
  3. Opérateurs C++
  4. Commentaires C++
  5. Modèles de classe C++
  6. Conversion de type Python et conversion de type
  7. Nombres Python, conversion de type et mathématiques
  8. Type de données Char C++ avec exemples
  9. Présentation de C++