Twitter und Facebook-Anbindung
X
Tweet Follow @twitterapi
!!! Anbindung an twitter und facebook öffnen !!!

Wenn Ihnen mein Online-Buch gefällt,
dann bedanken Sie sich doch mit einer kleinen Spende...

20.1.3 static Casting

20.1.3 static Casting

Das statische Casten ist die Mutter der Castings in C++ und funktioniert im Grunde genommen wie das klassische C Casting, nur mit dem Unterschied, dass man wieder ein Funktionstemplate benutzt. Bei der Umwandlung selbst werden keine Überprüfungen vorgenommen, aber falls man etwas casten will, was offensichtlich nicht funktioniert, wird man schon durch den Compiler darauf hingewiesen. In den nächsten Kapiteln wird Ihnen genau diese Art der Typumwandlung begegnen.

Im folgenden Beispiel zeige ich, wie man einen spezifischen Zeiger in einen Allgemeinen und wieder zurück wandelt.

 1
 2
 3
 4
 5
 6
 7
					
int*	pWert1	= new int(10);
void*	pWert2	= static_cast<void*>(pWert1);
long*	pWert3	= static_cast<long*>(pWert2);

printf("%li", *pWert3);

delete pWert1;
					

Ausgabe:

10
		

In Zeile 1 erzeuge ich mir einen Pointer auf einen Integer und initialisiere ihn gleich mit dem Wert 10. Anschließend, in Zeile 2, erzeuge ich mir einen "void" Zeiger, welchen ich auf den gleichen Wert zeigen lasse, allerdings jetzt ohne Angabe auf die Struktur, auf welche der Zeiger verweist. In Zeile 3 erzeuge ich jetzt einen Zeiger auf einen "long" Wert und lasse ihn, mittels statischem Casten, auf den selben Wert zeigen. Jetzt wird der Speicher, auf welchen der Zeiger verweist, als "long" interpretiert und wie Sie das an der Ausgabe sehen, hat alles wie gewünscht, funktioniert.

Zum Seitenanfang
Zum Inhaltsverzeichnis

© Copyright by Thomas Weiß, 2009 - 2012