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++.
- Impliciete conversie
- 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:
- C-type casting (ook bekend als cast-notatie) )
- Functienotatie (ook bekend als old C++ style type casting )
- 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