C ++ tipa pārveidošana

Šajā apmācībā mēs ar piemēru palīdzību uzzināsim par C ++ tipa pārveidošanas pamatiem.

C ++ ļauj mums konvertēt viena veida datus cita veida datiem. To sauc par tipa pārveidošanu.

C ++ ir divu veidu konvertēšanas veidi.

  1. Netieša reklāmguvums
  2. Nepārprotama reklāmguvums (pazīstams arī kā tipa apraide)

Netiešā veida reklāmguvums

Tipa pārveidošana, ko automātiski veic kompilators, tiek dēvēta par netiešu tipa pārveidošanu. Šis pārveidošanas veids ir pazīstams arī kā automātiska pārveidošana.

Apskatīsim divus netiešā tipa pārveidošanas piemērus.

1. piemērs: Reklāmguvums no int uz dubultu

 // 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; )

Rezultāts

 num_int = 9 num_double = 9

Programmā mainīgajam esam piešķīruši intdatus double.

 num_double = num_int;

Šeit kompilators intautomātiski pārvērš vērtību, doublepirms tā tiek piešķirta mainīgajam num_double. Šis ir netiešā tipa pārveidošanas piemērs.

2. piemērs: Automātiska konvertēšana no dubultas uz 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; )

Rezultāts

 num_int = 9 num_double = 9,99

Programmā mēs esam piešķīruši doubledatus intmainīgajam.

 num_double = num_int;

Šeit kompilators doubleautomātiski pārvērš vērtību, intpirms tā tiek piešķirta main_num_int. Šis ir arī netiešā tipa pārveidošanas piemērs.

Piezīme. Tā kā intnevar būt decimāldaļa, cipari aiz komata tiek saīsināti iepriekš minētajā piemērā.

Datu zudums reklāmguvuma laikā (sašaurinošs reklāmguvums)

Kā mēs redzējām no iepriekš minētā piemēra, pārveidošana no viena datu veida citā ir pakļauta datu zudumam. Tas notiek, ja lielāka veida dati tiek pārveidoti par mazāka veida datiem.

Iespējamais datu zudums tipa pārveidošanas laikā

C ++ nepārprotama reklāmguvums

Kad lietotājs manuāli maina datus no viena veida uz citu, to sauc par nepārprotamu pārveidošanu . Šis pārveidošanas veids ir pazīstams arī kā tipa liešana .

Ir trīs galvenie veidi, kā mēs varam izmantot skaidru pārveidošanu C ++. Viņi ir:

  1. C veida stila liešana (pazīstama arī kā cast notation )
  2. Funkciju apzīmējums (pazīstams arī kā vecais C ++ stila tipa liešana )
  3. Tipa pārveidošanas operatori

C stila tipa liešana

Kā norāda nosaukums, šāda veida liešanu priekšroku dod C programmēšanas valoda . Tas ir pazīstams arī kā cast notation .

Šī stila sintakse ir šāda:

 (data_type)expression;

Piemēram,

 // initializing int variable int num_int = 26; // declaring double variable double num_double; // converting from int to double num_double = (double)num_int;

Funkciju stila liešana

Mēs varam arī izmantot funkciju, piemēram, apzīmējumus, lai datus pārsūtītu no viena veida uz otru.

Šī stila sintakse ir šāda:

 data_type(expression);

Piemēram,

 // initializing int variable int num_int = 26; // declaring double variable double num_double; // converting from int to double num_double = double(num_int);

3. piemērs: veida liešana

 #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; )

Rezultāts

 num_double = 3.56 num_int1 = 3 num_int2 = 3

Tipa pārveidošanai izmantojām gan C stila tipa pārveidošanu, gan funkciju stila liešanu un parādījām rezultātus. Tā kā viņi veic vienu un to pašu uzdevumu, mums abiem ir vienāds rezultāts.

Ierakstiet konvertēšanas operatorus

Bez šiem diviem tipiem, C ++ ir arī četri operatori tipa pārveidošanai. Tie ir pazīstami kā tipa pārveidošanas operatori . Viņi ir:

  • static_cast
  • dynamic_cast
  • const_cast
  • reinterpret_cast

Mēs uzzināsim par šiem dalībniekiem turpmākajās apmācībās.

Ieteicamās konsultācijas:

  • C ++ virkne līdz int un otrādi
  • C ++ virkne peldēt, dubultā un otrādi

Interesanti raksti...