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++.
- Conversion implicite
- 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 :
- Transformation de type C (également connue sous le nom de notation de distribution )
- Notation de fonction (également connue sous le nom de casting de type dans l'ancien style C++ )
- 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