C ++ tipo konversija

Šioje pamokoje su pavyzdžių pagalba sužinosime apie C ++ tipo keitimo pagrindus.

C ++ leidžia mums konvertuoti vieno tipo duomenis į kitus. Tai vadinama tipo konversija.

Yra du tipų konversijos tipai C ++.

  1. Numanoma konversija
  2. Aiškus konversija (taip pat žinomas kaip tipo perdavimas)

Numanomas tipo konversija

Tipo konversija, kurią automatiškai atlieka kompiliatorius, vadinama numanomu tipo konversija. Šis konversijos tipas taip pat žinomas kaip automatinis konversija.

Pažvelkime į du numanomo tipo konversijos pavyzdžius.

1 pavyzdys: Konversija nuo int iki dvigubo

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

Rezultatas

 num_int = 9 num_double = 9

Programoje priskyrėme intduomenis doublekintamajam.

 num_double = num_int;

Čia kompiliatorius intautomatiškai konvertuoja vertę doubleprieš priskirdamas ją kintamajam num_double. Tai yra numanomo tipo konversijos pavyzdys.

2 pavyzdys: automatinė konversija iš dvigubos į 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; )

Rezultatas

 num_int = 9 num_double = 9,99

Programoje priskyrėme doubleduomenis intkintamajam.

 num_double = num_int;

Čia vertėjas doubleautomatiškai konvertuoja į intvertėją prieš priskirdamas jį kintamajam num_int. Tai taip pat numanomo tipo konversijos pavyzdys.

Pastaba: Kadangi intnegali būti dešimtainės dalies, skaičiai po dešimtainio taško yra sutrumpinti aukščiau pateiktame pavyzdyje.

Duomenų praradimas konversijos metu (siaurėjanti konversija)

Kaip matėme iš aukščiau pateikto pavyzdžio, konversija iš vieno duomenų tipo į kitą yra linkusi prarasti duomenis. Taip atsitinka, kai didesnio tipo duomenys konvertuojami į mažesnio tipo duomenis.

Galimas duomenų praradimas konvertuojant tipą

C ++ aiški konversija

Kai vartotojas rankiniu būdu keičia duomenis iš vieno tipo į kitą, tai vadinama aiškia konversija . Šis konversijos tipas taip pat žinomas kaip tipo liejimas .

Yra trys pagrindiniai būdai, kaip galime naudoti aiškų konversiją C ++ formatu. Jie yra:

  1. C stiliaus liejimas (taip pat žinomas kaip liejimo žymėjimas )
  2. Funkcijų žymėjimas (taip pat žinomas kaip senas „C ++“ stiliaus tipo liejimas )
  3. Tipo keitimo operatoriai

C stiliaus tipo liejimas

Kaip rodo pavadinimas, tokio tipo liejimą mėgsta C programavimo kalba . Jis taip pat žinomas kaip „ cast notation“ .

Šio stiliaus sintaksė yra tokia:

 (data_type)expression;

Pavyzdžiui,

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

Funkcijos stiliaus liejimas

Mes taip pat galime naudoti tokią funkciją kaip žymėjimas, kad perduotume duomenis iš vieno tipo į kitą.

Šio stiliaus sintaksė yra tokia:

 data_type(expression);

Pavyzdžiui,

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

3 pavyzdys: tipo liejimas

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

Rezultatas

 num_double = 3.56 num_int1 = 3 num_int2 = 3

Tipo konversijai naudojome ir C stiliaus tipo konversiją, ir funkcijų stiliaus liejimą, ir parodėme rezultatus. Kadangi jie atlieka tą pačią užduotį, abu duoda tą patį rezultatą.

Tipo konversijos operatoriai

Be šių dviejų tipų liejinių, C ++ taip pat turi keturis tipo keitimo operatorius. Jie yra žinomi kaip tipo keitimo operatoriai . Jie yra:

  • static_cast
  • dynamic_cast
  • const_cast
  • reinterpret_cast

Sužinosime apie šias grupes vėlesnėse pamokose.

Rekomenduojamos pamokos:

  • C ++ eilutė į int ir atvirkščiai
  • C ++ eilutė plūduriuojančiai, dviguba ir atvirkščiai

Įdomios straipsniai...