Conversió de tipus en C++
Un tipus de distribució és bàsicament una conversió d'un tipus a un altre. Hi ha dos tipus de conversió de tipus:
- Conversió de tipus implícita També coneguda com a 'conversió de tipus automàtica'.
- Fet pel compilador pel seu compte, sense cap activador extern de l'usuari.
- Generalment té lloc quan en una expressió hi ha més d'un tipus de dades. En aquestes condicions, la conversió de tipus (promoció de tipus) té lloc per evitar la pèrdua de dades.
- Tots els tipus de dades de les variables s'actualitzen al tipus de dades de la variable amb el tipus de dades més gran.
bool ->char -> curt int -> int -> int sense sign -> llarg -> sense sign -> llarg llarg -> float -> double -> llarg doble
- És possible que les conversions implícites perdin informació, els signes es poden perdre (quan està signat es converteix implícitament en sense signar) i es pot produir un desbordament (quan long long es converteix implícitament en flotant).
- Conversió per encàrrec: Això es fa definint explícitament el tipus requerit davant de l'expressió entre parèntesis. Això també es pot considerar com un càsting contundent.
Sintaxi:
(type) expression
on tipus indica el tipus de dades al qual es converteix el resultat final.
Exemple:
// 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;>}>
Sortida:Sum = 2
- Conversió mitjançant l'operador Cast: Un operador Cast és un operador unari que obliga a convertir un tipus de dades en un altre tipus de dades.
C++ admet quatre tipus de càsting:- Cast estàtic
- Cast dinàmic
- Const Cast
- Reinterpreta el repartiment
- Això es fa per aprofitar determinades característiques de les jerarquies de tipus o representacions de tipus.
- Ajuda a calcular expressions que contenen variables de diferents tipus de dades.
Exemple:
#include>using>namespace>std;>int>main()>{>>float>f = 3.5;>>>// using cast operator>>int>b =>static_cast><>int>>(f);>>>
Sortida:3
Avantatges de la conversió de tipus:
Potser T'Agradarà
Articles Més Populars
Categoria
Exemple de conversió implícita de tipus:
// 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;> }> |
Sortida:
x = 107 y = a z = 108Conversió de tipus explícita: aquest procés també s'anomena càsting de tipus i està definit per l'usuari. Aquí l'usuari pot escriure el resultat per convertir-lo en un tipus de dades concret.
En C++, es pot fer de dues maneres: