U ovom uputstvu naučit ćemo o osnovama pretvorbe tipa C ++ uz pomoć primjera.
C ++ nam omogućuje pretvaranje podataka jedne vrste u podatke druge. To je poznato kao pretvorba tipa.
U C ++ postoje dvije vrste pretvorbe tipova.
- Implicitna konverzija
- Eksplicitna konverzija (poznata i kao lijevanje tipova)
Implicitna pretvorba tipa
Pretvorba tipa koju prevodilac vrši automatski, poznata je kao implicitna pretvorba tipa. Ova vrsta pretvorbe poznata je i kao automatska pretvorba.
Pogledajmo dva primjera implicitne pretvorbe tipa.
Primjer 1: Pretvorba iz int u double
// 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; )
Izlaz
num_int = 9 num_double = 9
U programu smo varijabli dodijelili int
podatke double
.
num_double = num_int;
Ovdje prevodilac int
automatski pretvara vrijednost double
u nju prije nego što je dodijeljena varijabli num_double. Ovo je primjer implicitne pretvorbe tipa.
Primjer 2: Automatska konverzija iz dvostrukog u inter
//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; )
Izlaz
num_int = 9 num_double = 9,99
U programu smo varijabli dodijelili double
podatke int
.
num_double = num_int;
Ovdje prevodilac double
automatski pretvara vrijednost int
u nju prije nego što je dodijeljena varijabli num_int. Ovo je također primjer implicitne pretvorbe tipa.
Napomena: Budući da int
ne može imati decimalni dio, znamenke nakon decimalne točke skraćuju se u gornjem primjeru.
Gubitak podataka tijekom pretvorbe (sužavanje pretvorbe)
Kao što smo vidjeli iz gornjeg primjera, pretvorba iz jedne vrste podataka u drugu sklona je gubitku podataka. To se događa kada se podaci većeg tipa pretvaraju u podatke manjeg tipa.

C ++ eksplicitna pretvorba
Kada korisnik ručno mijenja podatke s jedne vrste na drugu, to je poznato kao eksplicitna pretvorba . Ova vrsta pretvorbe poznata je i kao lijevanje tipova .
Tri su glavna načina na koje možemo koristiti eksplicitnu pretvorbu u C ++. Oni su:
- Lijevanje tipa C (također poznato i kao notacija )
- Oznaka funkcije (poznata i kao lijevanje starog tipa C ++ )
- Operatori pretvorbe tipova
Lijevanje tipa u stilu C
Kao što ime sugerira, ova vrsta lijevanja omiljen u C programskom jeziku . Poznat je i pod nazivom cast cast .
Sintaksa ovog stila je:
(data_type)expression;
Na primjer,
// initializing int variable int num_int = 26; // declaring double variable double num_double; // converting from int to double num_double = (double)num_int;
Lijevanje u stilu funkcije
Također možemo koristiti funkciju poput notacije za prebacivanje podataka s jedne vrste na drugu.
Sintaksa ovog stila je:
data_type(expression);
Na primjer,
// initializing int variable int num_int = 26; // declaring double variable double num_double; // converting from int to double num_double = double(num_int);
Primjer 3: Lijevanje tipa
#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; )
Izlaz
num_double = 3,56 num_int1 = 3 num_int2 = 3
Za pretvorbu tipa koristili smo i pretvorbu tipa C i lijevanje u stilu funkcije i prikazali rezultate. Budući da obavljaju isti zadatak, obojica nam daju isti rezultat.
Operatori pretvorbe tipa
Osim ove dvije vrste odljevaka, C ++ ima i četiri operatora za pretvorbu tipa. Poznati su kao operateri pretvorbe tipa . Oni su:
static_cast
dynamic_cast
const_cast
reinterpret_cast
O tim ćemo castovima saznati u kasnijim tutorijalima.
Preporučeni vodiči:
- C ++ niz u int i obratno
- C ++ niz za plutanje, dvostruko i obrnuto