यह पेज (http://www.cplusplus.com/reference/memory/shared_ptr/) में, अनुच्छेद 5, यह कहते हैं:साझा_प्टर के एलियासिंग कन्स्ट्रक्टर के लिए क्या है?
साथ ही, shared_ptr वस्तुओं स्वामित्व एक सूचक से अधिक है, जबकि एक ही समय में किसी अन्य वस्तु की ओर इशारा करते साझा कर सकते हैं। इस क्षमता को एलियासिंग (कन्स्ट्रक्टर देखें) के रूप में जाना जाता है, और आमतौर पर उस ऑब्जेक्ट के स्वामित्व के दौरान सदस्य ऑब्जेक्ट्स को इंगित करने के लिए उपयोग किया जाता है। इस वजह से, एक shared_ptr दो संकेत से संबंधित हो सकता है:
एक संग्रहीत सूचक है, जो सूचक यह इंगित करने के लिए कहा जाता है, और एक यह ऑपरेटर के साथ dereferences *।
एक स्वामित्व वाला सूचक (संभावित रूप से साझा), जो पॉइंटर स्वामित्व समूह कुछ बिंदु पर हटाने का प्रभारी है, और जिसके लिए यह उपयोग के रूप में गिना जाता है।
आम तौर पर, संग्रहीत सूचक और स्वामित्व सूचक एक ही वस्तु, लेकिन उर्फ shared_ptr वस्तुओं (उर्फ निर्माता और उनके प्रतियों के साथ निर्माण किया गया है) का उल्लेख विभिन्न वस्तुओं का उल्लेख कर सकते।
फिर मैंने इस पृष्ठ (http://www.cplusplus.com/reference/memory/shared_ptr/shared_ptr/) को साझा_प्टर के एलियासिंग कन्स्ट्रक्टर के बारे में पढ़ा। लेकिन मुझे अभी भी यह "अलियासिंग" व्यवहार उलझन में लगता है। यह यहाँ क्यों है? ये किसके लिये है? मैं इस स्थिति में किस स्थिति में चाहूंगा?
अपने स्वयं के उद्धरण से: "[एलियासिंग] आमतौर पर उस वस्तु के स्वामित्व के दौरान सदस्य वस्तुओं को इंगित करने के लिए उपयोग किया जाता है।" – hvd
आपको पहले से ही एलियासिंग से परिचित होना चाहिए क्योंकि सी और सी ++ दोनों डिफ़ॉल्ट रूप से एलियासिंग की अनुमति देते हैं, यहां तक कि 'shared_ptr' पर विचार किए बिना आप पहले से ही ऐसी भाषा का उपयोग कर रहे हैं जो डिफ़ॉल्ट रूप से एलियासिंग की अनुमति देता है। – user2485710
@ एचवीडी हां। मैंने इस प्रश्न को पोस्ट करने के बाद बाद में यह देखा। लेकिन यह अभी भी पर्याप्त विशिष्ट नहीं है। – lqr