C ++ typkonvertering

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 ++.

  1. Implicit konvertering
  2. 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 intdata till en doublevariabel.

 num_double = num_int;

Här intomvandlas värdet automatiskt till doubleav 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 doubledata till en intvariabel.

 num_double = num_int;

Här doubleomvandlas värdet automatiskt till intav kompilatorn innan det tilldelas variabeln num_int. Detta är också ett exempel på implicit typkonvertering.

Obs! Eftersom det intinte 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.

Möjligt dataförlust under typkonvertering

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:

  1. Gjutning i C-stil (även känd som gjutning )
  2. Funktionsnotation (även känd som gammal C ++ stil typ gjutning )
  3. 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

Intressanta artiklar...