Pretvorba tipa C ++

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.

  1. Implicitna pretvorba
  2. 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 intpodatke double.

 num_double = num_int;

Tu prevajalnik intvrednost samodejno pretvori v, doublepreden 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 doublepodatke int.

 num_double = num_int;

Tu prevajalnik doublevrednost samodejno pretvori v, intpreden jo dodeli spremenljivki num_int. To je tudi primer implicitne pretvorbe tipa.

Opomba: Ker intne 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.

Možna izguba podatkov med pretvorbo 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:

  1. Ulivanje v slogu C (znano tudi kot zapis zasedbe )
  2. Oznaka funkcije (znana tudi kot ulivanje starega sloga C ++ )
  3. 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

Zanimive Članki...