C++ type casting -


संभव डुप्लिकेट:

कुछ दिनों पहले तक, मैंने सी ++ में सी स्टाइल कास्टिंग का उपयोग हमेशा किया है क्योंकि यह अच्छा काम करता था। मुझे हाल ही में पता चला है कि सी ++ में सी का उपयोग करना बहुत बुरा है ..

मैंने कभी भी सी ++ की कास्टिंग पहले कभी नहीं किया है, इसलिए मैं सोच रहा हूं कि कोई मुझे बता सकता है (अधिमानतः अपने शब्दों में) मुझे पता है कि कुछ से "कॉन्स्ट" को हटा दिया गया है, लेकिन मुझे यकीन नहीं है कि उन दोनों के बीच का अंतर क्या है, और मुझे किस प्रकार अलग-अलग में उपयोग करने की आवश्यकता है परिस्थितियों।

कहने के लिए "सी कास्टिंग बुरा है" एक छोर है जो स्वयं के द्वारा ही उतना ही बुरा है सी-स्टाइल का इस्तेमाल हर समय किया जाता है

उन क्षेत्रों में जहां "नया" सी ++ शैली का इस्तेमाल किया जाना चाहिए: पदानुक्रमित डाट (अपकास्ट्स, डाउनकास्ट्स, क्रॉसकास्ट), कॉन्स्ट-कॉस्टनेस कैस्ट और रीइंटरप्लेप्शन कैस्ट्स। अंकगणित डाली सी-स्टाइल के लिए पूरी तरह से ठीक काम करता है और कोई खतरा नहीं पैदा होता है, यही वजह है कि वे सुरक्षित रूप से सी ++ कोड में इस्तेमाल कर सकते हैं। असल में, मैं वास्तव में सी-स्टाइल को अंकगणित डाली के रूप में इस्तेमाल करने की सिफारिश करता हूं - सिर्फ अन्य कास्ट प्रकारों से अलग दिखने के लिए अंकगणितीय डाट बनाने के लिए।


Comments