const_cast
किसी वेरिएबल से const को हटाने या जोड़ने के लिए उपयोग किया जा सकता है। यह तब उपयोगी हो सकता है जब किसी वेरिएबल से constness जोड़ना या हटाना आवश्यक हो।
static_cast
यह सामान्य/साधारण प्रकार रूपांतरण के लिए उपयोग किया जाता है। यह निहित प्रकार जबरदस्ती के लिए भी जिम्मेदार कास्ट है और इसे स्पष्ट रूप से भी बुलाया जा सकता है। आपको इसका उपयोग float को int में, char को int में आदि जैसे मामलों में करना चाहिए।
dynamic_cast
यह कास्ट बहुरूपता को संभालने के लिए उपयोग किया जाता है। आपको इसका उपयोग केवल तब करना चाहिए जब आप किसी व्युत्पन्न वर्ग में कास्ट कर रहे हों। यह विशेष रूप से विरासत में उपयोग किया जाता है जब आप बेस क्लास से डेराइव्ड क्लास में कास्ट करते हैं।
reinterpret_cast
यह उपयोग करने में सबसे पेचीदा है। इसका उपयोग बिट पैटर्न को पुनर्व्याख्या करने के लिए किया जाता है और यह अत्यंत निम्न स्तर का है। इसका उपयोग मुख्य रूप से कच्चे डेटा बिट स्ट्रीम को वास्तविक डेटा में बदलने, या संरेखित पॉइंटर के निम्न बिट्स में डेटा संग्रहीत करने जैसी चीजों के लिए किया जाता है।