C++-Typkonvertierung
C++-Typkonvertierung
In diesem Tutorial lernen wir anhand von Beispielen die Grundlagen der C++-Typkonvertierung kennen.
C++ ermöglicht es uns, Daten eines Typs in den eines anderen zu konvertieren. Dies wird als Typkonvertierung bezeichnet.
In C++ gibt es zwei Arten der Typkonvertierung.
- Implizite Konvertierung
- Explizite Konvertierung (auch bekannt als Type Casting)
Implizite Typumwandlung
Die vom Compiler automatisch durchgeführte Typkonvertierung wird als implizite Typkonvertierung bezeichnet. Diese Art der Konvertierung wird auch als automatische Konvertierung bezeichnet.
Sehen wir uns zwei Beispiele für implizite Typkonvertierung an.
Beispiel 1:Konvertierung von int nach 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;
}
Ausgabe
num_int = 9 num_double = 9
Im Programm haben wir einen int
vergeben Daten zu einem double
Variable.
num_double = num_int;
Hier die int
Wert wird automatisch in double
umgewandelt vom Compiler, bevor es dem num_double zugewiesen wird Variable. Dies ist ein Beispiel für eine implizite Typkonvertierung.
Beispiel 2:Automatische Konvertierung von double nach 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;
}
Ausgabe
num_int = 9 num_double = 9.99
Im Programm haben wir einen double
vergeben Daten zu einem int
Variable.
num_double = num_int;
Hier die double
Wert wird automatisch in int
umgewandelt vom Compiler, bevor sie der num_int zugewiesen wird Variable. Dies ist auch ein Beispiel für eine implizite Typkonvertierung.
Hinweis: Seit int
keinen Dezimalteil haben kann, werden die Ziffern nach dem Dezimalkomma im obigen Beispiel abgeschnitten.
Datenverlust während der Konvertierung (einschränkende Konvertierung)
Wie wir im 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 Konvertierung wird auch als Type Casting bezeichnet .
Es gibt drei Hauptmöglichkeiten, wie wir die explizite Konvertierung in C++ verwenden können. Sie sind:
- Typumwandlung im C-Stil (auch bekannt als Umwandlungsnotation )
- Funktionsnotation (auch bekannt als Typumwandlung im alten C++-Stil )
- Typkonvertierungsoperatoren
Type Casting im C-Stil
Wie der Name schon sagt, wird diese Art des Castings von der Programmiersprache C bevorzugt . Sie wird auch als Cast-Notation bezeichnet .
Die Syntax für diesen Stil lautet:
(data_type)expression;
Zum Beispiel
// 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 auch die Funktion wie Notation verwenden, um Daten von einem Typ in einen anderen umzuwandeln.
Die Syntax für diesen Stil lautet:
data_type(expression);
Zum Beispiel
// 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:Typumwandlung
#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;
}
Ausgabe
num_double = 3.56 num_int1 = 3 num_int2 = 3
Wir haben sowohl die Typkonvertierung im C-Stil verwendet und die Umwandlung im Funktionsstil für die Typkonvertierung und die Ergebnisse angezeigt. Da sie dieselbe Aufgabe ausführen, liefern beide dieselbe Ausgabe.
Typkonvertierungsoperatoren
Neben diesen beiden Typumwandlungen verfügt C++ auch über vier Operatoren für die Typkonvertierung. Sie werden als Typumwandlungsoperatoren bezeichnet . Sie sind:
static_cast
dynamic_cast
const_cast
reinterpret_cast
Wir werden in späteren Tutorials mehr über diese Umwandlungen erfahren.
Empfohlene Tutorials:
- C++ String zu int und umgekehrt
- C++-String zum Fließen, Verdoppeln und umgekehrt
C Sprache