मैं सी ++ कास्टिंग के बारे में बहुत कुछ पढ़ रहा हूं और मुझे उलझन में लग रहा है क्योंकि मैंने हमेशा सी शैली कास्टिंग का उपयोग किया है।सी ++ कास्टिंग पर उलझन
मैंने पढ़ा है कि सी शैली कास्टिंग सी ++ में टालना चाहिए और यह कि reinterpret_cast बहुत खतरनाक है और जब भी कोई विकल्प होता है तब इसका उपयोग नहीं किया जाना चाहिए। Reinterpret_cast का उपयोग न करने के विपरीत, मैंने इसे अपने नमूना कोड में एमएसडीएन पर कई बार इस्तेमाल किया है। इससे मुझे मेरा पहला सवाल पूछने की ओर अग्रसर किया जाता है, reinterpret_cast का उपयोग करना कब ठीक है?
उदाहरण के लिए:
LRESULT CALLBACK WndProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
switch (Msg)
{
case WM_CREATE:
{
LPCREATESTRUCT lpCreateStruct = reinterpret_cast<LPCREATESTRUCT>(lParam);
return 0;
}
}
...
}
अगर ऐसा है नहीं ठीक है, तो मैं कैसे केवल, स्थिर गतिशील, और/या स्थिरांक कास्टिंग का उपयोग कर एक सूचक को lParam मूल्य डाली हैं?
इसके अलावा: यदि reinterpret_cast पोर्टेबल नहीं है, मैं इसे कैसे (अच्छा अभ्यास के लिए)
यह बहुत पुराना कोड बेस हो सकता है। –