Czym się różni reinterpret_cast od rzutowania??

Czym się różni reinterpret_cast od rzutowania??
JI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 29
0

Jak w temacie.
Jest jakaś różnica czy można tego używać zamiennie ??

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
0

reinterpret_cast to rodzaj rzutowania, więc czym się różni od... czego?

K1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 20
0

W symfonii jest wyjaśnienie tego tematu.
http://en.cppreference.com/w/cpp/language/reinterpret_cast

MarekR22
  • Rejestracja: dni
  • Ostatnio: dni
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 jak static_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ów const 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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.