Type Conversion in C++
In this topic, we will discuss the conversion of one data type into another in the C++ programming language. Type conversion is the process that converts the predefined data type of one variable into an appropriate data type. The main idea behind type conversion is to convert two different data type variables into a single data type to solve mathematical and logical expressions easily without any data loss.
For example, we are adding two numbers, where one variable is of int type and another of float type; we need to convert or typecast the int variable into a float to make them both float data types to add them.
Type conversion can be done in two ways in C++, one is implicit type conversion, and the second is explicit type conversion. Those conversions are done by the compiler itself, called the implicit type or automatic type conversion. The conversion, which is done by the user or requires user interferences called the explicit or user define type conversion. Let's discuss the implicit and explicit type conversion in C++.
Implicit Type Conversion
The implicit type conversion is the type of conversion done automatically by the compiler without any human effort. It means an implicit conversion automatically converts one data type into another type based on some predefined rules of the C++ compiler. Hence, it is also known as the automatic type conversion.
In the above example, there are two different data type variables, x, and y, where x is an int type, and the y is of short int data type. And the resultant variable z is also an integer type that stores x and y variables. But the C++ compiler automatically converts the lower rank data type (short int) value into higher type (int) before resulting the sum of two numbers. Thus, it avoids the data loss, overflow, or sign loss in implicit type conversion of C++.
Order of the typecast in implicit conversion
The following is the correct order of data types from lower rank to higher rank:
Program to convert int to float type using implicit type conversion
Let's create a program to convert smaller rank data types into higher types using implicit type conversion.
The value of num1 is: 25 The value of num2 is: 25
Program to convert double to int data type using implicit type conversion
Let's create a program to convert the higher data type into lower type using implicit type conversion.
The value of the int variable is: 15 The value of the double variable is: 15.25
In the above program, we have declared num as an integer type and num2 as the double data type variable and then assigned num2 as 15.25. After this, we assign num2 value to num variable using the assignment operator. So, a C++ compiler automatically converts the double data value to the integer type before assigning it to the num variable and print the truncate value as 15.
Explicit type conversion
Conversions that require user intervention to change the data type of one variable to another, is called the explicit type conversion. In other words, an explicit conversion allows the programmer to manually changes or typecasts the data type from one variable to another type. Hence, it is also known as typecasting. Generally, we force the explicit type conversion to convert data from one type to another because it does not follow the implicit conversion rule.
The explicit type conversion is divided into two ways:
Program to convert float value into int type using the cast operator
Cast operator: In C++ language, a cast operator is a unary operator who forcefully converts one type into another type.
Let's consider an example to convert the float data type into int type using the cast operator of the explicit conversion in C++ language.
The value of x is: 6
Program to convert one data type into another using the assignment operator
Let's consider an example to convert the data type of one variable into another using the assignment operator in the C++ program.
The value of int num1 is: 25 The value of float num2 is: 25.0