आपको निम्नलिखित के लिए सी-स्टाइल कास्ट क्यों चाहिए?सूचक के लिए स्टेटिक_कास्ट पूर्णांक पता
int* ptr = static_cast<int*>(0xff); // error: invalid static_cast from type 'int'
// to type 'int*'
int* ptr = (int*) 0xff; // ok.
आपको निम्नलिखित के लिए सी-स्टाइल कास्ट क्यों चाहिए?सूचक के लिए स्टेटिक_कास्ट पूर्णांक पता
int* ptr = static_cast<int*>(0xff); // error: invalid static_cast from type 'int'
// to type 'int*'
int* ptr = (int*) 0xff; // ok.
static_cast
केवल दो संबंधित प्रकार के बीच डाली कर सकते हैं। एक पूर्णांक एक सूचक है और इसके विपरीत से संबंधित नहीं है, तो आप के बजाय reinterpret_cast
उपयोग करने के लिए है, जो बताता है को संकलक पूर्णांक के टुकड़े पुनर्व्याख्या रूप में यदि वे एक सूचक (और इसके विपरीत) थे की जरूरत है:
int* ptr = reinterpret_cast<int*>(0xff);
निम्नलिखित पढ़ें अधिक जानकारी के लिए:
आप एक सी शैली डाली या सीधे reinterpret_cast
यह खड़ा है जब एक सूचक को एक पूर्णांक कास्टिंग के लिए की जरूरत है, क्योंकि मानक असंबंधित प्रकार के लिए तो कहते हैं।
मानक जनादेश वहाँ उन डाले, क्योंकि
When should static_cast, dynamic_cast, const_cast and reinterpret_cast be used?
Regular cast vs. static_cast vs. dynamic_cast
तुम भी 'reinterpret_cast' जो सी-शैली डाली अंत में वैसे भी उपयोग करेगा उपयोग कर सकते हैं। हालांकि अभी भी एक अच्छा विचार नहीं है। –