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.
- Implicitná konverzia
- 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 double
premennej.
num_double = num_int;
Tu je int
hodnota automaticky prevedená double
kompilá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 int
premennej.
num_double = num_int;
Tu je double
hodnota automaticky prevedená int
kompilátorom pred jej priradením k premennej num_int. Toto je tiež príklad implicitnej konverzie typu.
Poznámka: Pretože int
nemôž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.

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ú:
- Casting typu C (tiež známy ako cast notation )
- Funkčná notácia (známa tiež ako casting typu starého štýlu C ++ )
- 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