در مورد Cast های دیگه اینجا توضیح داده شده : http://www.7khatcode.com/75/regular-cast-vs-static_cast-vs-dynamic_cast
reinterpret_cast بی قانون ترین Cast توی ++C هست که اصلا توجهی به آرایش داده مقصد و مبدا نداره . و فقط مقدار رو از یک نوع به نوع دیگه تبدیل میکنه .
برای مثال یک متغییر float از لحاظ چیدمان باینری با یک متغییر int تفاوت داره .
اگر شما از static_cast یا c-style cast برای کست کردن یک float به int استفاده کنید ، داده های نهایی که به int مقصد منتقل میشه تغییر خواهد کرد ، چون اگر داخل متغییر float شما عدد ۳ رو داشتید بتونید داخل int هم ۳ رو داشته باشید . (چون آرایش بیتی شون فرق داره )
ولی reinterpret_cast هیچ دخالتی توی هیچ کاری نداره و فقط داده ها رو انتقال میده .