capypad
0 Tage Serie
cpp / beginner
Snippet

Static Cast: Sichere Typumwandlung

static_cast ist ein Compile-Zeit-Typumwandlungsoperator, der grundlegende Typumwandlungen sicher durchführt. Er überprüft gültige Umwandlungen zur Compile-Zeit, was das Finden von Fehlern erleichtert. Hier wandeln wir einen int in double um, einen double in int (abschneidend den Dezimalteil), und ein char in seinen ASCII-Ganzzahlwert. Dies ist sicherer als C-Style Casting und macht deine Absicht für andere Entwickler klar.

snippet.cpp
cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
 
int main() {
int wholeNumber = 42;
double decimalNumber = 3.14;
double convertedNum = static_cast<double>(wholeNumber);
int convertedInt = static_cast<int>(decimalNumber);
cout << "Integer to double: " << convertedNum << endl;
cout << "Double to integer: " << convertedInt << endl;
char letter = 'A';
int asciiValue = static_cast<int>(letter);
cout << "Char 'A' as integer: " << asciiValue << endl;
return 0;
}
Erklärung
1
static_cast<double>(wholeNumber)
Wandelt int wholeNumber in double um - fügt Dezimalteil hinzu (.0)
2
static_cast<int>(decimalNumber)
Wandelt double in int um - kürzt (schneidet ab) den Dezimalteil, Ergebnis ist 3
3
static_cast<int>(letter)
Wandelt char 'A' in seinen ASCII-Zahlwert um, welcher 65 ist
4
cout << "Double to integer: " << convertedInt
Gibt 3 aus weil .14 gekürzt wurde als 3.14 in int umgewandelt wurde
5
cout << "Char 'A' as integer: " << asciiValue
Gibt 65 aus weil das der ASCII-Code für Großbuchstabe A ist