Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

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.

  1. Implizite Konvertierung
  2. 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:

  1. Typumwandlung im C-Stil (auch bekannt als Umwandlungsnotation )
  2. Funktionsnotation (auch bekannt als Typumwandlung im alten C++-Stil )
  3. 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

  1. C#-Typkonvertierung
  2. C++-Datentypen
  3. C++-Operatoren
  4. C++-Kommentare
  5. C++-Klassenvorlagen
  6. Python-Typkonvertierung und Typumwandlung
  7. Python-Zahlen, Typumwandlung und Mathematik
  8. C++ Char-Datentyp mit Beispielen
  9. C++-Übersicht
  10. C++-Variablentypen