Dans cette rubrique, nous aborderons la conversion d'un type de données en un autre dans le langage de programmation C++. La conversion de type est le processus qui convertit le type de données prédéfini d'une variable en un type de données approprié. L'idée principale derrière la conversion de type est de convertir deux variables de type de données différentes en un seul type de données pour résoudre facilement des expressions mathématiques et logiques sans aucune perte de données.
Par exemple, nous ajoutons deux nombres, où une variable est de type int et une autre de type float ; nous devons convertir ou transtyper la variable int en float pour en faire les deux types de données float pour les ajouter.
La conversion de type peut être effectuée de deux manières en C++, l'une est conversion de type implicite , et le second est conversion de type explicite . Ces conversions sont effectuées par le compilateur lui-même, appelées conversion de type implicite ou conversion de type automatique. La conversion, qui est effectuée par l'utilisateur ou nécessite des interférences de l'utilisateur, est appelée conversion de type explicite ou définie par l'utilisateur. Discutons de la conversion de type implicite et explicite en C++.
Conversion de type implicite
La conversion de type implicite est le type de conversion effectuée automatiquement par le compilateur sans aucun effort humain. Cela signifie qu'une conversion implicite convertit automatiquement un type de données en un autre type en fonction de certaines règles prédéfinies du compilateur C++. Par conséquent, il est également connu sous le nom de conversion de type automatique .
Par exemple:
int x = 20; short int y = 5; int z = x + y;
Dans l'exemple ci-dessus, il existe deux variables de type de données différentes, x et y, où x est un type int et y est un type de données int court. Et la variable résultante z est également un type entier qui stocke les variables x et y. Mais le compilateur C++ convertit automatiquement la valeur du type de données de rang inférieur (short int) en type supérieur (int) avant d'obtenir la somme de deux nombres. Ainsi, il évite la perte de données, le débordement ou la perte de signe lors de la conversion de type implicite du C++.
Ordre du transtypage en conversion implicite
Voici l'ordre correct des types de données, du rang inférieur au rang supérieur :
bool -> char -> short int -> int -> unsigned int -> long int -> unsigned long int -> long long int -> float -> double -> long double
Programme pour convertir int en type float en utilisant la conversion de type implicite
Créons un programme pour convertir les types de données de rang plus petit en types supérieurs à l'aide d'une conversion de type implicite.
Ridhima Tiwari
Programme1.cpp
#include using namespace std; int main () { // assign the integer value int num1 = 25; // declare a float variable float num2; // convert int value into float variable using implicit conversion num2 = num1; cout << ' The value of num1 is: ' << num1 << endl; cout << ' The value of num2 is: ' << num2 << endl; return 0; }
Sortir
The value of num1 is: 25 The value of num2 is: 25
Programme pour convertir le type de données double en int en utilisant la conversion de type implicite
Créons un programme pour convertir le type de données supérieur en type inférieur en utilisant la conversion de type implicite.
Programme2.cpp
#include using namespace std; int main() { int num; // declare int type variable double num2 = 15.25; // declare and assign the double variable // use implicit type conversion to assign a double value to int variable num = num2; cout << ' The value of the int variable is: ' << num << endl; cout << ' The value of the double variable is: ' << num2 << endl; return 0; }
Sortir
The value of the int variable is: 15 The value of the double variable is: 15.25
Dans le programme ci-dessus, nous avons déclaré num comme type entier et num2 comme variable de type de données double, puis attribué num2 à 15,25. Après cela, nous attribuons la valeur num2 à la variable num à l'aide de l'opérateur d'affectation. Ainsi, un compilateur C++ convertit automatiquement la valeur de données double en type entier avant de l'attribuer à la variable num et imprime la valeur tronquée comme 15.
Conversion de type explicite
Conversions qui nécessitent intervention de l'utilisateur pour changer le type de données d'une variable en une autre, s'appelle le conversion de type explicite . En d’autres termes, une conversion explicite permet au programmeur de modifier ou de transtyper manuellement le type de données d’une variable à un autre type. Par conséquent, il est également connu sous le nom de transtypage. Généralement, nous forçons la conversion de type explicite pour convertir les données d'un type à un autre car elle ne suit pas la règle de conversion implicite.
La conversion de type explicite est divisée de deux manières :
- Conversion explicite à l'aide de l'opérateur cast
- Conversion explicite à l'aide de l'opérateur d'affectation
Programme pour convertir la valeur float en type int à l'aide de l'opérateur cast
Opérateur de casting : En langage C++, un opérateur de conversion est un opérateur unaire qui convertit de force un type en un autre type.
Considérons un exemple pour convertir le type de données float en type int à l'aide de l'opérateur cast de la conversion explicite en langage C++.
Programme3.cpp
#include using namespace std; int main () { float f2 = 6.7; // use cast operator to convert data from one type to another int x = static_cast (f2); cout << ' The value of x is: ' << x; return 0; }
Sortir
The value of x is: 6
Programme pour convertir un type de données en un autre à l'aide de l'opérateur d'affectation
Prenons un exemple pour convertir le type de données d'une variable en une autre à l'aide de l'opérateur d'affectation dans le programme C++.
Programme4.cpp
#include using namespace std; int main () { // declare a float variable float num2; // initialize an int variable int num1 = 25; // convert data type from int to float num2 = (float) num1; cout << ' The value of int num1 is: ' << num1 << endl; cout << ' The value of float num2 is: ' << num2 << endl; return 0; }
Sortir
The value of int num1 is: 25 The value of float num2 is: 25.0