In diesem Tutorial lernen wir anhand von Beispielen die Grundlagen der C ++ - Typkonvertierung kennen.
Mit C ++ können wir Daten eines Typs in Daten eines anderen konvertieren. Dies wird als Typkonvertierung bezeichnet.
In C ++ gibt es zwei Arten der Typkonvertierung.
- Implizite Konvertierung
- Explizite Konvertierung (auch als Typguss bekannt)
Implizite Typkonvertierung
Die vom Compiler automatisch durchgeführte Typkonvertierung wird als implizite Typkonvertierung bezeichnet. Diese Art der Konvertierung wird auch als automatische Konvertierung bezeichnet.
Betrachten wir zwei Beispiele für die implizite Typkonvertierung.
Beispiel 1: Konvertierung von int nach 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; )
Ausgabe
num_int = 9 num_double = 9
Im Programm haben wir int
einer double
Variablen Daten zugewiesen .
num_double = num_int;
Hier wird der int
Wert double
vom Compiler automatisch konvertiert, bevor er der Variablen num_double zugewiesen wird. Dies ist ein Beispiel für eine implizite Typkonvertierung.
Beispiel 2: Automatische Konvertierung von double nach 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; )
Ausgabe
num_int = 9 num_double = 9,99
Im Programm haben wir double
einer int
Variablen Daten zugewiesen .
num_double = num_int;
Hier wird der double
Wert int
vom Compiler automatisch konvertiert, bevor er der Variablen num_int zugewiesen wird. Dies ist auch ein Beispiel für eine implizite Typkonvertierung.
Hinweis: Da int
es keinen Dezimalteil geben kann, werden die Ziffern nach dem Dezimalpunkt im obigen Beispiel abgeschnitten.
Datenverlust während der Konvertierung (schmale Konvertierung)
Wie wir aus dem obigen Beispiel gesehen haben, ist die Konvertierung von einem Datentyp in einen anderen anfällig für Datenverlust. Dies geschieht, wenn Daten eines größeren Typs in Daten eines kleineren Typs konvertiert werden.

Explizite C ++ - Konvertierung
Wenn der Benutzer Daten manuell von einem Typ in einen anderen ändert, wird dies als explizite Konvertierung bezeichnet . Diese Art der Umwandlung wird auch als Typguss bezeichnet .
Es gibt drei Möglichkeiten, wie wir die explizite Konvertierung in C ++ verwenden können. Sie sind:
- Casting im C-Stil (auch als Cast-Notation bekannt )
- Funktionsnotation (auch als altes Casting im C ++ - Stil bekannt )
- Typkonvertierungsoperatoren
Casting im C-Stil
Wie der Name schon sagt, wird diese Art des Castings von der Programmiersprache C bevorzugt . Es wird auch als Besetzungsnotation bezeichnet .
Die Syntax für diesen Stil lautet:
(data_type)expression;
Beispielsweise,
// initializing int variable int num_int = 26; // declaring double variable double num_double; // converting from int to double num_double = (double)num_int;
Casting im Funktionsstil
Wir können die Funktion wie Notation auch verwenden, um Daten von einem Typ in einen anderen umzuwandeln.
Die Syntax für diesen Stil lautet:
data_type(expression);
Beispielsweise,
// initializing int variable int num_int = 26; // declaring double variable double num_double; // converting from int to double num_double = double(num_int);
Beispiel 3: Typguss
#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; )
Ausgabe
num_double = 3.56 num_int1 = 3 num_int2 = 3
Wir haben sowohl die Typkonvertierung im C -Stil als auch das Casting im Funktionsstil für die Typkonvertierung verwendet und die Ergebnisse angezeigt. Da sie dieselbe Aufgabe ausführen, geben uns beide die gleiche Ausgabe.
Typkonvertierungsoperatoren
Neben diesen beiden Typumwandlungen verfügt C ++ auch über vier Operatoren für die Typkonvertierung. Sie werden als Typkonvertierungsoperatoren bezeichnet . Sie sind:
static_cast
dynamic_cast
const_cast
reinterpret_cast
Wir werden in späteren Tutorials mehr über diese Darsteller erfahren.
Empfohlene Tutorials:
- C ++ String zu int und umgekehrt
- C ++ String zum Floaten, Double und umgekehrt