Tipa cast būtībā ir pāreja no viena veida uz citu. Ir divi veidu pārveidošanas veidi:
- Netieša tipa konvertēšana Zināms arī kā “automātiskā tipa konvertēšana”.
- To veic kompilators pats, bez jebkāda ārēja lietotāja aktivizēta.
- Parasti notiek, ja izteiksmē ir vairāk nekā viens datu tips. Šādos apstākļos notiek tipa konvertēšana (tipa veicināšana), lai izvairītos no datu zaudēšanas.
- Visi mainīgo datu tipi tiek jaunināti uz tā mainīgā datu tipu ar lielāko datu tipu.
bool ->char -> short int -> int -> unsigned int -> long -> unsigned -> long long -> float -> double -> long double>
- Ir iespējams, ka netiešās konversijas var zaudēt informāciju, zīmes var tikt zaudētas (ja parakstīts tiek netieši pārveidots par neparakstītu), un var rasties pārpilde (ja long long tiek netieši pārveidots par peldošu).
- Konvertēšana pēc uzdevuma: Tas tiek darīts, skaidri definējot vajadzīgo veidu izteiksmes priekšā iekavās. To var uzskatīt arī par spēcīgu liešanu.
Sintakse:
(type) expression>
kur veids norāda datu tipu, uz kuru tiek konvertēts gala rezultāts.
virknes pārvēršana par veselu skaitli
Piemērs:
// C++ program to demonstrate>// explicit type casting>>#include>using>namespace>std;>>int>main()>{>>double>x = 1.2;>>>// Explicit conversion from double to int>>int>sum = (>int>)x + 1;>>>cout <<>'Sum = '><< sum;>>>return>0;>}>nejaušā secībā sql
>
>
Izvade:Sum = 2>
- Konvertēšana, izmantojot Cast operatoru: Cast operators ir vienots operators kas liek vienam datu tipam pārveidot par citu datu tipu.
C++ atbalsta četrus liešanas veidus:- Statiskā apraide
- Dinamiskā apraide
- Const Cast
- Pārinterpretēt Cast
Piemērs:
agrīnie mukeri
#include>using>namespace>std;>int>main()>{>>float>f = 3.5;>>>// using cast operator>>int>b =>static_cast><>int>>(f);>>> cout << b;>}>>
>
Izvade:3>
Netiešās reklāmguvuma veida piemērs:
papildinātājs pilns papildinātājs
// An example of implicit conversion> > #include> using> namespace> std;> > int> main()> {> >int> x = 10;>// integer x> >char> y =>'a'>;>// character c> > >// y implicitly converted to int. ASCII> >// value of 'a' is 97> >x = x + y;> > >// x is implicitly converted to float> >float> z = x + 1.0;> > >cout <<>'x = '> << x << endl> ><<>'y = '> << y << endl> ><<>'z = '> << z << endl;> > >return> 0;> }> |
>
>Izvade:
x = 107 y = a z = 108>Skaidra tipa konvertēšana : šo procesu sauc arī par tipa apraidi, un to nosaka lietotājs. Šeit lietotājs var ierakstīt rezultātu, lai padarītu to par noteiktu datu tipu.
Programmā C++ to var izdarīt divos veidos:
Tipa pārveidošanas priekšrocības:
- Tas tiek darīts, lai izmantotu noteiktas tipu hierarhiju vai tipu attēlojumu funkcijas.
- Tas palīdz aprēķināt izteiksmes, kas satur dažādu datu tipu mainīgos.