V tej vadnici bomo s pomočjo primerov spoznali osnove pretvorbe tipa C ++.
C ++ nam omogoča pretvorbo podatkov ene vrste v podatke druge. To je znano kot pretvorba tipa.
V jeziku C ++ obstajata dve vrsti pretvorbe tipov.
- Implicitna pretvorba
- Izrecna pretvorba (znana tudi pod imenom Casting Type)
Implicitna pretvorba tipa
Pretvorba tipa, ki jo samodejno izvede prevajalnik, je znana kot implicitna pretvorba tipa. Ta vrsta pretvorbe je znana tudi kot samodejna pretvorba.
Oglejmo si dva primera implicitne pretvorbe tipa.
Primer 1: Pretvorba iz int v dvojno
// 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; )
Izhod
num_int = 9 num_double = 9
V programu smo spremenljivki dodelili int
podatke double
.
num_double = num_int;
Tu prevajalnik int
vrednost samodejno pretvori v, double
preden jo dodeli spremenljivki num_double. To je primer implicitne pretvorbe tipa.
Primer 2: Samodejna pretvorba iz dvojne v 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; )
Izhod
num_int = 9 num_double = 9,99
V programu smo spremenljivki dodelili double
podatke int
.
num_double = num_int;
Tu prevajalnik double
vrednost samodejno pretvori v, int
preden jo dodeli spremenljivki num_int. To je tudi primer implicitne pretvorbe tipa.
Opomba: Ker int
ne more imeti decimalnega dela, so številke za decimalno vejico v zgornjem primeru okrnjene.
Izguba podatkov med pretvorbo (zožitev pretvorbe)
Kot smo videli iz zgornjega primera, pretvorba iz ene podatkovne vrste v drugo povzroča izgubo podatkov. To se zgodi, ko se podatki večjega tipa pretvorijo v podatke manjšega tipa.

Izrecna pretvorba C ++
Ko uporabnik ročno spremeni podatke iz ene vrste v drugo, je to znano kot eksplicitna pretvorba . Ta vrsta pretvorbe je znana tudi kot ulivanje vrst .
Obstajajo trije glavni načini, kako lahko uporabimo eksplicitno pretvorbo v jeziku C ++. To so:
- Ulivanje v slogu C (znano tudi kot zapis zasedbe )
- Oznaka funkcije (znana tudi kot ulivanje starega sloga C ++ )
- Operatorji pretvorbe tipov
Vlivanje tipa v slogu C
Kot že ime pove, je ta vrsta litja z omejenimi možnostmi, ki jih C programskem jeziku . Znan je tudi kot zapis zasedbe .
Sintaksa tega sloga je:
(data_type)expression;
Na primer
// initializing int variable int num_int = 26; // declaring double variable double num_double; // converting from int to double num_double = (double)num_int;
Predvajanje v slogu funkcije
Funkcijo, kot je zapis, lahko uporabimo tudi za predvajanje podatkov iz ene vrste v drugo.
Sintaksa tega sloga je:
data_type(expression);
Na primer
// initializing int variable int num_int = 26; // declaring double variable double num_double; // converting from int to double num_double = double(num_int);
Primer 3: Tip Casting
#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; )
Izhod
num_double = 3,56 num_int1 = 3 num_int2 = 3
Za pretvorbo tipa smo uporabili pretvorbo tipa C in ulivanje v slogu funkcije ter prikazali rezultate. Ker opravljata isto nalogo, nam oba dajeta enake rezultate.
Operatorji pretvorbe tipa
Poleg teh dveh tipov ulitkov ima C ++ tudi štiri operaterje za pretvorbo tipa. Znani so kot pretvorniki tipov . To so:
static_cast
dynamic_cast
const_cast
reinterpret_cast
O teh igralskih zasedbah bomo izvedeli v kasnejših vajah.
Priporočene vaje:
- Niz C ++ v int in obratno
- Niz C ++ za lebdenje, dvojno in obratno