C ++ type konvertering

I denne opplæringen vil vi lære om det grunnleggende om C ++ type konvertering ved hjelp av eksempler.

C ++ lar oss konvertere data av en type til den for en annen. Dette er kjent som typekonvertering.

Det er to typer typekonvertering i C ++.

  1. Implisitt konvertering
  2. Eksplisitt konvertering (også kjent som Type Casting)

Implisitt type konvertering

Typekonvertering som gjøres automatisk av kompilatoren er kjent som implisitt typekonvertering. Denne typen konvertering er også kjent som automatisk konvertering.

La oss se på to eksempler på implisitt typekonvertering.

Eksempel 1: Konvertering fra int til dobbelt

 // 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; )

Produksjon

 num_int = 9 num_double = 9

I programmet har vi tilordnet en intdata til en doublevariabel.

 num_double = num_int;

Her blir intverdien automatisk konvertert til doubleav kompilatoren før den tildeles variabelen num_double. Dette er et eksempel på implisitt konvertering av typen.

Eksempel 2: Automatisk konvertering fra dobbelt til 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; )

Produksjon

 num_int = 9 num_double = 9.99

I programmet har vi tilordnet en doubledata til en intvariabel.

 num_double = num_int;

Her blir doubleverdien automatisk konvertert til intav kompilatoren før den tildeles variabelen num_int. Dette er også et eksempel på implisitt type konvertering.

Merk: Siden det intikke kan ha en desimaldel, blir sifrene etter desimalpunktet avkortet i eksemplet ovenfor.

Datatap under konvertering (begrenset konvertering)

Som vi har sett fra eksemplet ovenfor, er konvertering fra en datatype til en annen utsatt for tap av data. Dette skjer når data av større type konverteres til data av mindre type.

Mulig datatap under typekonvertering

C ++ eksplisitt konvertering

Når brukeren endrer data manuelt fra en type til en annen, er dette kjent som eksplisitt konvertering . Denne typen konvertering er også kjent som type casting .

Det er tre hovedmåter vi kan bruke eksplisitt konvertering i C ++. De er:

  1. Støping av C-stil (også kjent som rollebesetning )
  2. Funksjonsnotasjon (også kjent som gammel C ++ stil type casting )
  3. Skriv konverteringsoperatører

C-stil Type støping

Som navnet antyder, er denne type casting foretrekkes av programmeringsspråket C . Det er også kjent som rollebesetning .

Syntaksen for denne stilen er:

 (data_type)expression;

For eksempel,

 // initializing int variable int num_int = 26; // declaring double variable double num_double; // converting from int to double num_double = (double)num_int;

Funksjonsstøping

Vi kan også bruke funksjonen som notasjon til å kaste data fra en type til en annen.

Syntaksen for denne stilen er:

 data_type(expression);

For eksempel,

 // initializing int variable int num_int = 26; // declaring double variable double num_double; // converting from int to double num_double = double(num_int);

Eksempel 3: Type støping

 #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; )

Produksjon

 num_double = 3.56 num_int1 = 3 num_int2 = 3

Vi brukte både C-stilkonvertering og funksjonstil-casting for typekonvertering og viste resultatene. Siden de utfører samme oppgave, gir begge oss samme utgang.

Skriv konverteringsoperatører

Foruten disse to typene støpegods, har C ++ også fire operatører for typekonvertering. De er kjent som typekonverteringsoperatører . De er:

  • static_cast
  • dynamic_cast
  • const_cast
  • reinterpret_cast

Vi vil lære om disse rollebesetningene i senere opplæringsprogrammer.

Anbefalte opplæringsprogrammer:

  • C ++ streng til int og omvendt
  • C ++ streng for å flyte, doble og omvendt

Interessante artikler...