Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

C++ Type-conversie

C++ Type Conversie

In deze zelfstudie leren we de basisprincipes van de conversie van het C++-type aan de hand van voorbeelden.

C++ stelt ons in staat om gegevens van het ene type naar dat van een ander te converteren. 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 gedaan, 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 double

// Working of implicit type-conversion

#include <iostream>
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 int . toegewezen gegevens naar een double variabel.

num_double = num_int;

Hier, de int waarde wordt automatisch geconverteerd naar double door de compiler voordat het wordt toegewezen aan de num_double variabel. Dit is een voorbeeld van impliciete typeconversie.


Voorbeeld 2:Automatische conversie van double naar int

//Working of Implicit type-conversion

#include <iostream>
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 double . toegewezen gegevens naar een int variabel.

num_double = num_int;

Hier, de double waarde wordt automatisch geconverteerd naar int door de compiler voordat het wordt toegewezen aan de num_int variabel. Dit is ook een voorbeeld van impliciete typeconversie.

Opmerking: Sinds int geen decimaal deel kan hebben, 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 vatbaar voor gegevensverlies. Dit gebeurt wanneer gegevens van een groter type worden geconverteerd naar gegevens van een kleiner type.


Expliciete C++-conversie

Wanneer de gebruiker handmatig gegevens van het ene type naar het andere wijzigt, staat dit bekend als expliciete conversie . Dit type conversie staat ook bekend als type casting .

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

  1. C-type casting (ook bekend als cast-notatie) )
  2. Functienotatie (ook bekend als old C++ style type casting )
  3. Type conversie-operators

C-stijl Type Casting

Zoals de naam al doet vermoeden, wordt dit type casting begunstigd door 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;

Functioneel casten

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:Typecasting

#include <iostream>

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 gebruikten zowel de C-stijl type conversie en de functie-achtige casting voor typeconversie en de resultaten weergegeven. Omdat ze dezelfde taak uitvoeren, geven ze ons allebei dezelfde output.


Type conversie-operators

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

  • static_cast
  • dynamic_cast
  • const_cast
  • reinterpret_cast

We zullen meer over deze casts leren in latere tutorials.


Aanbevolen zelfstudies:

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

C Taal

  1. C# Type conversie
  2. C++-gegevenstypen
  3. C++-operators
  4. C++ Opmerkingen
  5. C++-klassesjablonen
  6. Python Type Conversie en Type Casting
  7. Python-nummers, typeconversie en wiskunde
  8. C++ Char-gegevenstype met voorbeelden
  9. C++-overzicht
  10. Typen C++-variabelen
  11. C++-constanten/letters