इस insightful article में, क्यूटी प्रोग्रामर में से एक विभिन्न प्रकार के स्मार्ट पॉइंटर्स क्यूटी लागू करने की कोशिश करता है। शुरुआत में, वह डेटा साझा करने के बीच एक अंतर बना देता है और संकेत खुद को साझा करने:सी ++ स्मार्ट पॉइंटर्स: शेयरिंग पॉइंटर्स बनाम डेटा साझा करना
सबसे पहले, एक बात सीधे मिलता है: वहाँ संकेत दिए गए और साझा करने के डेटा को साझा करने के बीच एक अंतर है। जब आप शेयर पॉइंटर्स, पॉइंटर का मूल्य और उसके जीवनकाल को स्मार्ट पॉइंटर क्लास द्वारा संरक्षित किया जाता है। अन्य शब्दों में, पॉइंटर invariant है। हालांकि, ऑब्जेक्ट कि पॉइंटर यह इंगित करता है कि इसके नियंत्रण से बाहर है। हम नहीं जानते कि ऑब्जेक्ट कॉम्पैक्टिव है या नहीं, यदि यह असाइन करने योग्य है या नहीं।
अब, डेटा साझा करने में स्मार्ट पॉइंटर क्लास शामिल है जो डेटा साझा करने के बारे में कुछ जानता है। वास्तव में, संपूर्ण बिंदु यह है कि डेटा साझा किया जा रहा है और हमें कोई परवाह नहीं है। तथ्य यह है कि डेटा साझा करने के लिए पॉइंटर्स का उपयोग किया जा रहा है इस बिंदु पर अप्रासंगिक है। उदाहरण के लिए, आप वास्तव में परवाह नहीं करते हैं कि क्यूटी टूल कक्षाएं स्पष्ट रूप से साझा की जाती हैं, है ना? आपके लिए महत्वपूर्ण है कि उन्हें साझा किया जाता है (इस प्रकार स्मृति खपत को कम करता है) और कि वे काम करते हैं जैसे कि वे नहीं थे।
सचमुच, मैं बस इस स्पष्टीकरण को कम नहीं करता हूं। लेख टिप्पणियों में एक स्पष्टीकरण याचिका थी, लेकिन मुझे लेखक की व्याख्या पर्याप्त नहीं मिली।
यदि आप समझते हैं, तो कृपया समझाएं। यह भेद क्या है, और अन्य साझा सूचक वर्ग (यानी बढ़ावा से या नए सी ++ मानकों) इस वर्गीकरण में कैसे फिट होते हैं?
अग्रिम धन्यवाद
यह क्यूटी चीज अभी भी मुझे भ्रमित कर रही है :) –