Š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.
- Netieša reklāmguvums
- 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 int
datus double
.
num_double = num_int;
Šeit kompilators int
automātiski pārvērš vērtību, double
pirms 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 double
datus int
mainīgajam.
num_double = num_int;
Šeit kompilators double
automātiski pārvērš vērtību, int
pirms tā tiek piešķirta main_num_int. Šis ir arī netiešā tipa pārveidošanas piemērs.
Piezīme. Tā kā int
nevar 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.

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:
- C veida stila liešana (pazīstama arī kā cast notation )
- Funkciju apzīmējums (pazīstams arī kā vecais C ++ stila tipa liešana )
- 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