I den här handledningen lär vi oss grunderna i C ++ typkonvertering med hjälp av exempel.
C ++ låter oss konvertera data av en typ till en annan. Detta kallas typkonvertering.
Det finns två typer av typkonvertering i C ++.
- Implicit konvertering
- Explicit Conversion (även känd som Type Casting)
Implicit typkonvertering
Typkonvertering som görs automatiskt av kompilatorn kallas implicit typkonvertering. Denna typ av konvertering kallas också automatisk konvertering.
Låt oss titta på två exempel på implicit typkonvertering.
Exempel 1: Konvertering från int till dubbel
// 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; )
Produktion
num_int = 9 num_double = 9
I programmet har vi tilldelat en int
data till en double
variabel.
num_double = num_int;
Här int
omvandlas värdet automatiskt till double
av kompilatorn innan det tilldelas variabeln num_double. Detta är ett exempel på implicit typkonvertering.
Exempel 2: Automatisk konvertering från dubbel till 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; )
Produktion
num_int = 9 num_double = 9.99
I programmet har vi tilldelat en double
data till en int
variabel.
num_double = num_int;
Här double
omvandlas värdet automatiskt till int
av kompilatorn innan det tilldelas variabeln num_int. Detta är också ett exempel på implicit typkonvertering.
Obs! Eftersom det int
inte kan finnas en decimaldel, trunkeras siffrorna efter decimalpunkten i exemplet ovan.
Dataförlust under konvertering (begränsad konvertering)
Som vi har sett från exemplet ovan är konvertering från en datatyp till en annan utsatt för dataförlust. Detta händer när data av större typ konverteras till data av mindre typ.

C ++ Explicit Conversion
När användaren manuellt ändrar data från en typ till en annan kallas detta uttrycklig konvertering . Denna typ av konvertering kallas också typgjutning .
Det finns tre huvudsakliga sätt på vilka vi kan använda explicit konvertering i C ++. Dom är:
- Gjutning i C-stil (även känd som gjutning )
- Funktionsnotation (även känd som gammal C ++ stil typ gjutning )
- Skriv konverteringsoperatörer
C-stil gjutning
Som namnet antyder gynnas denna typ av gjutning av C-programmeringsspråket . Det är också känt som cast notation .
Syntaxen för den här stilen är:
(data_type)expression;
Till exempel,
// initializing int variable int num_int = 26; // declaring double variable double num_double; // converting from int to double num_double = (double)num_int;
Funktionsstil gjutning
Vi kan också använda funktionen som notering för att kasta data från en typ till en annan.
Syntaxen för den här stilen är:
data_type(expression);
Till exempel,
// initializing int variable int num_int = 26; // declaring double variable double num_double; // converting from int to double num_double = double(num_int);
Exempel 3: Typ gjutning
#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; )
Produktion
num_double = 3.56 num_int1 = 3 num_int2 = 3
Vi använde både C-typtypkonvertering och funktionstypgjutning för typkonvertering och visade resultaten. Eftersom de utför samma uppgift, ger båda oss samma resultat.
Skriv konverteringsoperatörer
Förutom dessa två typgjutningar har C ++ också fyra operatörer för typkonvertering. De är kända som typkonverteringsoperatörer . Dom är:
static_cast
dynamic_cast
const_cast
reinterpret_cast
Vi kommer att lära oss om dessa rollbesättningar i senare handledning.
Rekommenderade handledningar:
- C ++ sträng till int och vice versa
- C ++ sträng för att flyta, dubbla och vice versa