C ++ typeconversie

In deze tutorial leren we met behulp van voorbeelden over de basisprincipes van C ++ typeconversie.

Met C ++ kunnen we gegevens van het ene type converteren naar dat van een ander. Dit staat bekend als typeconversie.

Er zijn twee soorten typeconversie in C ++.

  1. Impliciete conversie
  2. Expliciete conversie (ook bekend als Type Casting)

Impliciete typeconversie

De typeconversie die automatisch door de compiler wordt uitgevoerd, staat bekend als impliciete typeconversie. Dit type conversie wordt ook wel automatische conversie genoemd.

Laten we eens kijken naar twee voorbeelden van impliciete typeconversie.

Voorbeeld 1: conversie van int naar dubbel

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

Uitvoer

 num_int = 9 num_double = 9

In het programma hebben we een intdata toegewezen aan een doublevariabele.

 num_double = num_int;

Hier wordt de intwaarde automatisch geconverteerd doubledoor de compiler voordat deze wordt toegewezen aan de variabele num_double. Dit is een voorbeeld van een impliciete typeconversie.

Voorbeeld 2: automatische conversie van dubbel naar 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; )

Uitvoer

 num_int = 9 num_double = 9,99

In het programma hebben we een doubledata toegewezen aan een intvariabele.

 num_double = num_int;

Hier wordt de doublewaarde automatisch geconverteerd intdoor de compiler voordat deze wordt toegewezen aan de variabele num_int. Dit is ook een voorbeeld van een impliciete typeconversie.

Opmerking: aangezien inter geen decimaal deel kan zijn, worden de cijfers achter de komma in het bovenstaande voorbeeld afgekapt.

Gegevensverlies tijdens conversie (conversie beperken)

Zoals we in het bovenstaande voorbeeld hebben gezien, is conversie van het ene gegevenstype naar het andere gevoelig voor gegevensverlies. Dit gebeurt wanneer gegevens van een groter type worden geconverteerd naar gegevens van een kleiner type.

Mogelijk gegevensverlies tijdens typeconversie

C ++ expliciete conversie

Wanneer de gebruiker handmatig gegevens van het ene type naar het andere verandert, staat dit bekend als expliciete conversie . Dit type conversie wordt ook wel typegieten genoemd .

Er zijn drie belangrijke manieren waarop we expliciete conversie in C ++ kunnen gebruiken. Zij zijn:

  1. Gieten in C-stijl (ook bekend als castnotatie )
  2. Functienotatie (ook bekend als casten in oude C ++ -stijl )
  3. Typ conversie-operators

C-stijl type gieten

Zoals de naam suggereert, wordt dit type casting voorkeur van de C programmeertaal . Het is ook bekend als cast-notatie .

De syntaxis voor deze stijl is:

 (data_type)expression;

Bijvoorbeeld,

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

Casting in functiestijl

We kunnen ook de functie zoals notatie gebruiken om gegevens van het ene type naar het andere te casten.

De syntaxis voor deze stijl is:

 data_type(expression);

Bijvoorbeeld,

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

Voorbeeld 3: Type Casting

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

Uitvoer

 num_double = 3,56 num_int1 = 3 num_int2 = 3

We hebben zowel de C-stijltypeconversie als de functiestijl-casting voor typeconversie gebruikt en de resultaten weergegeven. Omdat ze dezelfde taak uitvoeren, geven ze ons allebei dezelfde output.

Typ Conversion Operators

Naast deze twee type gietstukken heeft C ++ ook vier operators voor typeconversie. Ze staan ​​bekend als typeconversie-operators . Zij zijn:

  • static_cast
  • dynamic_cast
  • const_cast
  • reinterpret_cast

In latere tutorials zullen we over deze afgietsels leren.

Aanbevolen tutorials:

  • C ++ string naar int en vice versa
  • C ++ string om te zweven, te verdubbelen en vice versa

Interessante artikelen...