Conversion de type 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 en 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 casting 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.

Regardons deux exemples de conversion de type implicite.

Exemple 1: Conversion de int en double

 // Working of implicit type-conversion #include 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; )

Production

 num_int = 9 num_double = 9

Dans le programme, nous avons attribué une intdonnée à une doublevariable.

 num_double = num_int;

Ici, la intvaleur est automatiquement convertie doublepar le compilateur avant d'être affectée à la variable num_double. Ceci est un exemple de conversion de type implicite.

Exemple 2: Conversion automatique de double à int

 //Working of Implicit type-conversion #include 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; )

Production

 num_int = 9 num_double = 9,99

Dans le programme, nous avons attribué une doubledonnée à une intvariable.

 num_double = num_int;

Ici, la doublevaleur est automatiquement convertie intpar le compilateur avant d'être affectée à la variable num_int. Ceci est également un exemple de conversion de type implicite.

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

Perte de données pendant la conversion (réduction 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.

Perte de données possible lors de la conversion de type

Conversion explicite C ++

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

Il existe trois façons principales d'utiliser la conversion explicite en C ++. Elles sont:

  1. Casting de type C (également connu sous le nom de notation de cast )
  2. Notation de fonction (également appelée ancienne conversion de type de style C ++ )
  3. Opérateurs de conversion de type

Moulage de type C

Comme son nom l' indique, ce type de coulée est favorisée par la langage de programmation C . Il est également connu sous le nom de notation 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;

Coulée de style fonctionnel

Nous pouvons également utiliser la fonction comme la notation pour convertir des 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: moulage de type

 #include 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; )

Production

 num_double = 3,56 num_int1 = 3 num_int2 = 3

Nous avons utilisé à la fois la conversion de type de style C et la conversion de style de fonction pour la conversion de type et affiché 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 castings de type, C ++ a également quatre opérateurs pour la conversion de type. Ils sont appelés opérateurs de conversion de type . Elles sont:

  • static_cast
  • dynamic_cast
  • const_cast
  • reinterpret_cast

Nous en apprendrons davantage sur ces moulages dans les prochains tutoriels.

Tutoriels recommandés:

  • Chaîne C ++ en int et vice-versa
  • Chaîne C ++ à float, double et vice-versa

Articles intéressants...