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ů.
- Implicitní převod
- 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 int
data double
proměnné.
num_double = num_int;
Zde je int
hodnota automaticky převedena na double
kompilá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 double
data int
proměnné.
num_double = num_int;
Zde je double
hodnota automaticky převedena na int
kompilátor, než je přiřazena proměnné num_int. Toto je také příklad převodu implicitního typu.
Poznámka: Protože int
nemůž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.

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:
- Casting typu C (také známý jako cast notation )
- Zápis funkce (známý také jako casting typu starého stylu C ++ )
- 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