Jak w temacie.
Jest jakaś różnica czy można tego używać zamiennie ??
0
0
reinterpret_cast to rodzaj rzutowania, więc czym się różni od... czego?
0
W symfonii jest wyjaśnienie tego tematu.
http://en.cppreference.com/w/cpp/language/reinterpret_cast
2
-
static_cast
programista mówi kompilatorowi, że logika aplikacji gwarantuje iż konwersja jest prawidłowa lub jest prosta w wykoaniu, kompilator jedynie spradza czy taka konwersja jest faktycznie możliwa i nie generuje żadnej weryfikacji w trakcie wykonywania kodu. -
dynamic_cast
tak jakstatic_cast
tyle, że kompilator generuje kod, który w trakcie wykonywania weryfikuje poprawność konwersji. By zadziałało z weryfikacją wymagana jest tablica wirtualna (typ wyjściowy musi mieć przynajmniej jedną metodę wirtualną) -
const_cast
pozwala jedynie na ściągniecie lub dodanie modyfikatorówconst
volatile
, typ podstawowy pozostaje bez zmian. Mało użyteczne. Najczyściej w celu rozwiązywania problemów ze starymi bibliotekami. -
reinterpret_cast
programista mówi kompilatorowi, wiem co robię traktuj te dane binarne tak jakby były zadanego typu (coś jak manipulacja na unii z C). Nie jest dokonywana jakakolwiek weryfikacja.
rzutowanie w stylu C działa jak static_cast
.