इसे देखने का एक और तरीका है: एक कास्ट पॉइंटर का सटीक अर्थ यह है कि आप उस ऑब्जेक्ट या किसी अन्य पॉइंटर या उसी ऑब्जेक्ट के संदर्भ के माध्यम से दिखाई देने वाली पॉइंट-टू-ऑब्जेक्ट में परिवर्तन नहीं कर पाएंगे। लेकिन जब कोई वस्तु नष्ट हो जाती है, तो पहले हटाए गए ऑब्जेक्ट द्वारा पहले से मौजूद पते के अन्य सभी संकेत अब उस वस्तु के संकेत नहीं होते हैं । वे एक ही पते को संग्रहीत करते हैं, लेकिन वह पता अब किसी भी वस्तु का पता नहीं है (वास्तव में इसे जल्द ही एक अलग वस्तु के पते के रूप में पुन: उपयोग किया जा सकता है)।
यह अंतर अधिक स्पष्ट होगा यदि C ++ में पॉइंटर्स कमजोर संदर्भों की तरह व्यवहार किए जाते हैं, जैसे ही ऑब्जेक्ट नष्ट हो जाता है, इसके लिए सभी मौजूदा पॉइंटर्स को तुरंत सेट किया जाएगा 0
। (इस तरह की चीज को सभी C ++ प्रोग्रामों पर लगाने के लिए रनटाइम के हिसाब से बहुत महंगा माना जाता है, और वास्तव में इसे पूरी तरह से विश्वसनीय बनाना असंभव है।)
अद्यतन : यह नौ साल बाद पढ़ना, यह वकील-ईश है। मुझे अब आपकी मूल प्रतिक्रिया समझ में आ रही है। म्यूटेशन को अस्वीकार करने के लिए लेकिन विनाश को स्पष्ट रूप से समस्याग्रस्त करने की अनुमति है। कॉन्स्ट पॉइंट / रेफरेंस का निहित अनुबंध यह है कि उनका अस्तित्व लक्ष्य ऑब्जेक्ट, उर्फ स्वचालित कचरा संग्रह पर एक ब्लॉक के रूप में कार्य करेगा।
इसका सामान्य समाधान इसके बजाय लगभग किसी अन्य भाषा का उपयोग करना है।