static_cast
W języku programowania C++ static_cast
jest operatorem , który wykonuje jawną konwersję typu .
Składnia
static_cast <typ> ( obiekt ) ; _
Parametr typu musi być typem danych, do którego obiekt może zostać przekonwertowany za pomocą znanej metody, niezależnie od tego, czy jest to wbudowany, czy rzutowany. Typ może być odwołaniem lub modułem wyliczającym. Wszystkie typy konwersji, które są dobrze zdefiniowane i dozwolone przez kompilator, są wykonywane przy użyciu static_cast
. [ nieudana weryfikacja ]
Operatora static_cast<>
można używać do takich operacji jak:
- konwersja wskaźnika klasy bazowej na wskaźnik niewirtualnej klasy pochodnej ( rzutowanie w dół );
- konwertowanie liczbowych typów danych, takich jak enums , na ints lub floats .
Chociaż konwersje static_cast
są sprawdzane w czasie kompilacji, aby zapobiec oczywistym niezgodnościom, nie jest wykonywane żadne sprawdzanie typu w czasie wykonywania , które mogłoby zapobiec rzutowaniu między niezgodnymi typami danych, takimi jak wskaźniki. static_cast ze wskaźnika do klasy B
do wskaźnika do klasy pochodnej D
jest źle sformułowany, jeśli B
jest niedostępną lub niejednoznaczną podstawą
D
. static_cast bazowej
wirtualnej klasy bazowej) do wskaźnika klasy pochodnej jest źle sformułowany.