Převod typu C ++

V tomto tutoriálu se pomocí příkladů dozvíme základní informace o převodu typu C ++.

C ++ nám umožňuje převádět data jednoho typu na jiný. Toto se nazývá převod typu.

V C ++ existují dva typy převodu typů.

  1. Implicitní převod
  2. Explicitní převod (také známý jako odlévání typu)

Implicitní převod typu

Převod typu, který se provádí automaticky pomocí kompilátoru, se označuje jako implicitní převod typu. Tento typ převodu je také známý jako automatický převod.

Podívejme se na dva příklady převodu implicitního typu.

Příklad 1: Převod z int na dvojnásobek

 // 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ýstup

 num_int = 9 num_double = 9

V programu jsme přiřadili intdata doubleproměnné.

 num_double = num_int;

Zde je inthodnota automaticky převedena na doublekompilátor, než je přiřazena proměnné num_double. Toto je příklad převodu implicitního typu.

Příklad 2: Automatický převod 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ýstup

 num_int = 9 num_double = 9,99

V programu jsme přiřadili doubledata intproměnné.

 num_double = num_int;

Zde je doublehodnota automaticky převedena na intkompilátor, než je přiřazena proměnné num_int. Toto je také příklad převodu implicitního typu.

Poznámka: Protože intnemůže mít desetinnou část, číslice za desetinnou čárkou jsou ve výše uvedeném příkladu zkráceny.

Ztráta dat během převodu (zúžení převodu)

Jak jsme viděli z výše uvedeného příkladu, převod z jednoho datového typu na jiný je náchylný ke ztrátě dat. K tomu dochází, když jsou data většího typu převedena na data menšího typu.

Možná ztráta dat během převodu typu

Explicitní převod v C ++

Když uživatel ručně změní data z jednoho typu na jiný, je to známé jako explicitní převod . Tento typ převodu je také známý jako odlévání typu .

Existují tři hlavní způsoby, kterými můžeme použít explicitní převod v C ++. Oni jsou:

  1. Casting typu C (také známý jako cast notation )
  2. Zápis funkce (známý také jako casting typu starého stylu C ++ )
  3. Operátory převodu typu

Casting typu C

Jak už název napovídá, tento typ odlitku je zvýhodněný C programovací jazyk . To je také známé jako cast notace .

Syntaxe pro tento styl je:

 (data_type)expression;

Napří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 ve funkčním stylu

Můžeme také použít funkci jako notaci k odesílání dat z jednoho typu do druhého.

Syntaxe pro tento styl je:

 data_type(expression);

Například,

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

Příklad 3: Odlévání 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ýstup

 num_double = 3,56 num_int1 = 3 num_int2 = 3

K převodu typu jsme použili jak převod typu C stylu, tak přetypování funkčního stylu a výsledky jsme zobrazili. Protože plní stejný úkol, oba nám dávají stejný výstup.

Operátory převodu typu

Kromě těchto dvou typů odlitků má C ++ také čtyři operátory pro převod typů. Jsou známí jako operátoři převodu typů . Oni jsou:

  • static_cast
  • dynamic_cast
  • const_cast
  • reinterpret_cast

O těchto obsazeních se dozvíme v dalších tutoriálech.

Doporučené výukové programy:

  • Řetězec C ++ na int a naopak
  • Řetězec C ++ pro float, double a naopak

Zajímavé články...