क्लास ऑब्जेक्ट में शून्य ऑब्जेक्ट में पॉइंटर कैसे डालें?सी ++ टाइपकास्ट: शून्य पॉइंटर से क्लास पॉइंटर
उत्तर
static_cast
के साथ। ध्यान दें कि आपको केवल यह करना होगा यदि सूचक वास्तव में निर्दिष्ट प्रकार की वस्तु को इंगित करता है; यानी, पॉइंटर का मान void
को पॉइंटर से ऐसी ऑब्जेक्ट में लिया गया था।
thing * p = whatever(); // pointer to object
void * pv = p; // pointer to void
thing * p2 = static_cast<thing *>(pv); // pointer to the same object
यदि आपको खुद को ऐसा करने की आवश्यकता है, तो आप अपने डिज़ाइन पर पुनर्विचार करना चाहेंगे। आप टाइप सुरक्षा को छोड़ रहे हैं, अमान्य कोड लिखना आसान बनाते हैं:
something_else * q = static_cast<something_else *>(pv);
q->do_something(); // BOOM! undefined behaviour.
नहीं, यह सहायक नहीं है; यह गलत है। 'Reinterpret_cast' का प्रयोग करें। –
@ मार्सेलो कैंटोस: आप जिसकी आवश्यकता है उससे भी ज्यादा खतरनाक कास्ट का उपयोग क्यों करेंगे? –
+1 @ मार्सेलो कैंटोस: नहीं, यह वास्तव में सही है। 'static_cast' का उपयोग शून्य रूपांतरण के लिए निहित रूपांतरणों और वर्ग सूचक को उल्टा करने के लिए किया जाता है, यह एक अंतर्निहित रूपांतरण है। –
- 1. सी ++/सीएलआई पॉइंटर से देशी सी ++ पॉइंटर
- 2. सी ++: एक बेस क्लास पॉइंटर
- 3. सी # - पॉइंटर
- 4. सी ++ पॉइंटर
- 5. पॉइंटर-टू-पॉइंटर क्रैश होता है जहां पॉइंटर
- 6. पॉइंटर
- 7. क्या यह एक शून्य * पॉइंटर
- 8. सी ++ पासिंग पॉइंटर टू फंक्शन (हाउटो) + सी ++ पॉइंटर मैनिपुलेशन
- 9. पॉइंटर-टू-पॉइंटर
- 10. पॉइंटर
- 11. पॉइंटर
- 12. सी ++ कॉन्स्ट पॉइंटर घोषणा
- 13. सी फ़ंक्शन पॉइंटर अनुवाद?
- 14. सी ++ वेक्टर पॉइंटर
- 15. सी ++ स्मार्ट पॉइंटर प्रदर्शन
- 16. सी # फ़ंक्शन पॉइंटर?
- 17. सी डबल पॉइंटर
- 18. सी ++ फ़ंक्शन पॉइंटर पैरामीटर
- 19. सी ++ पॉइंटर सरणी प्रारंभिक सहायता
- 20. सी ++ पॉइंटर बहु-विरासत मज़े
- 21. गैर-पॉइंटर क्लास सदस्यों को शुरू करना
- 22. स्मार्ट पॉइंटर
- 23. फ़ंक्शन पॉइंटर
- 24. फ़ंक्शन पॉइंटर
- 25. फ़ंक्शन पॉइंटर
- 26. चेतावनी जब पॉइंटर और पॉइंटर-टू-फ़ंक्शन
- 27. हटाएं बनाम ऑपरेटर हटाएं (और शून्य पॉइंटर)
- 28. एक शून्य पॉइंटर का उपयोग कब करें?
- 29. अमान्य सी ++ से (पॉइंटर से कॉन्स्ट) (पॉइंटर से गैर-कॉन्स) तक कास्ट है?
- 30. सी ++। त्रुटि: शून्य पॉइंटर-टू-ऑब्जेक्ट प्रकार नहीं है
आपको पहली जगह पॉइंटर कैसे मिला? आप कैसे जानते हैं कि यह वास्तव में किसी ऑब्जेक्ट पर इंगित कर रहा है? आप कैसे जानते हैं कि यह किस प्रकार की वस्तु पर इशारा कर रहा है? –