Š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 ++.
- Numanoma konversija
- 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 int
duomenis double
kintamajam.
num_double = num_int;
Čia kompiliatorius int
automatiškai konvertuoja vertę double
prieš 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 double
duomenis int
kintamajam.
num_double = num_int;
Čia vertėjas double
automatiškai konvertuoja į int
vertėją prieš priskirdamas jį kintamajam num_int. Tai taip pat numanomo tipo konversijos pavyzdys.
Pastaba: Kadangi int
negali 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.

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:
- C stiliaus liejimas (taip pat žinomas kaip liejimo žymėjimas )
- Funkcijų žymėjimas (taip pat žinomas kaip senas „C ++“ stiliaus tipo liejimas )
- 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