Pretvorba tipa C ++

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.

  1. Implicitna konverzija
  2. 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 intpodatke double.

 num_double = num_int;

Ovdje prevodilac intautomatski pretvara vrijednost doubleu 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 doublepodatke int.

 num_double = num_int;

Ovdje prevodilac doubleautomatski pretvara vrijednost intu nju prije nego što je dodijeljena varijabli num_int. Ovo je također primjer implicitne pretvorbe tipa.

Napomena: Budući da intne 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.

Mogući gubitak podataka tijekom pretvorbe 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:

  1. Lijevanje tipa C (također poznato i kao notacija )
  2. Oznaka funkcije (poznata i kao lijevanje starog tipa C ++ )
  3. 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

Zanimljivi članci...