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 ++.
- Impliciete conversie
- 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 int
data toegewezen aan een double
variabele.
num_double = num_int;
Hier wordt de int
waarde automatisch geconverteerd double
door 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 double
data toegewezen aan een int
variabele.
num_double = num_int;
Hier wordt de double
waarde automatisch geconverteerd int
door de compiler voordat deze wordt toegewezen aan de variabele num_int. Dit is ook een voorbeeld van een impliciete typeconversie.
Opmerking: aangezien int
er 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.

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:
- Gieten in C-stijl (ook bekend als castnotatie )
- Functienotatie (ook bekend als casten in oude C ++ -stijl )
- 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