Konverzia typu C ++

V tomto tutoriáli sa pomocou príkladov dozvieme základné informácie o konverzii typu C ++.

C ++ nám umožňuje prevádzať údaje jedného typu na iné. Toto sa nazýva konverzia typu.

V C ++ existujú dva typy prevodov typov.

  1. Implicitná konverzia
  2. Explicitná konverzia (známa tiež ako prenášanie typu)

Implicitná konverzia typu

Konverzia typu, ktorá sa vykonáva automaticky kompilátorom, sa nazýva implicitná konverzia typu. Tento typ konverzie je tiež známy ako automatická konverzia.

Pozrime sa na dva príklady implicitnej konverzie typu.

Príklad 1: Konverzia z int na dvojnásobok

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

Výkon

 num_int = 9 num_double = 9

V programe sme priradili intúdaje k doublepremennej.

 num_double = num_int;

Tu je inthodnota automaticky prevedená doublekompilátorom pred jej priradením k premennej num_double. Toto je príklad implicitnej konverzie typu.

Príklad 2: Automatická konverzia z dvojitého na 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; )

Výkon

 num_int = 9 num_double = 9,99

V programe sme priradili doubleúdaje k intpremennej.

 num_double = num_int;

Tu je doublehodnota automaticky prevedená intkompilátorom pred jej priradením k premennej num_int. Toto je tiež príklad implicitnej konverzie typu.

Poznámka: Pretože intnemôže mať desatinnú časť, číslice za desatinnou čiarkou sa vo vyššie uvedenom príklade skrátia.

Strata údajov počas konverzie (zužujúca sa konverzia)

Ako sme videli z vyššie uvedeného príkladu, konverzia z jedného dátového typu na druhý je náchylná na stratu údajov. To sa stane, keď sa údaje väčšieho typu prevedú na údaje menšieho typu.

Možná strata údajov počas prevodu typu

Explicitná konverzia v C ++

Keď používateľ ručne zmení údaje z jedného typu na druhý, je to známe ako explicitná konverzia . Tento typ premeny sa nazýva aj casting .

Existujú tri hlavné spôsoby, ako môžeme použiť explicitnú konverziu v C ++. Oni sú:

  1. Casting typu C (tiež známy ako cast notation )
  2. Funkčná notácia (známa tiež ako casting typu starého štýlu C ++ )
  3. Operátory prevodu typu

Casting typu C

Ako už názov napovedá, tento typ odliatku je zvýhodnený C programovací jazyk . Je tiež známy ako castená notácia .

Syntax pre tento štýl je:

 (data_type)expression;

Napríklad,

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

Casting vo funkčnom štýle

Môžeme tiež použiť funkciu ako notácia na prenášanie údajov z jedného typu do druhého.

Syntax pre tento štýl je:

 data_type(expression);

Napríklad,

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

Príklad 3: Odlievanie typu

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

Výkon

 num_double = 3,56 num_int1 = 3 num_int2 = 3

Na konverziu typu sme použili konverziu typu C aj casting funkčného štýlu a výsledky sme zobrazili. Pretože vykonávajú tú istú úlohu, obaja nám dávajú rovnaký výstup.

Operátory prevodu typu

Okrem týchto dvoch odliatkov typov má C ++ tiež štyri operátory na prevod typu. Sú známe ako operátory prevodu typov . Oni sú:

  • static_cast
  • dynamic_cast
  • const_cast
  • reinterpret_cast

O týchto obsadeniach sa dozvieme v ďalších tutoriáloch.

Odporúčané návody:

  • Reťazec v C ++ na int a naopak
  • Reťazec C ++ pre float, double a naopak

Zaujímavé články...