static_cast


Eine explizite Typumwandlung in der Sprache C wird durch folgende Anweisung erreicht:

 

float zahl1 = 5.45f;

int zahl2 = (int) zahl1; 

 

Die gleiche Anweisung kann in C++ wie folgt aussehen:

 

float zahl1 = 5.45f;

int   zahl2 = int( zahl1 ); 

 

Anhänger des C++-Standards bevorzugen neben der oben dargestellten "funktionalen" Schreibweise den Bezeichner

 

static_cast<Typ>(Ausdruck)

 

als Ersatz für die castings im C-Stil. Damit wird Ausdruck in den Datentyp Typ umgewandelt.

 

float zahl1 = 5.45f;

int   zahl2 = static_cast<int>( zahl1 ); 

 

Zur Klarstellung folgt hier ein kleines Programm mit allen drei Methoden im Vergleich:

 

#include <iostream>

using namespace std;

 

int main()

{

       float zahl1 = 5.45f;

      

       int zahl2   = (int) zahl1;                // C

       int zahl3   = int( zahl1 );               // C++ "funktional"

       int zahl4   = static_cast<int>( zahl1 );  // C++

 

       cout << zahl2 << "\t" << zahl3 << "\t" << zahl4 << endl;

}


Übersicht Keywords C++