क्या इसी तरह की (लेकिन सीमित नहीं) कुछ उन्नत तकनीकों कच्चे संकेत का उपयोग कर की तुलना में प्रत्येक स्मार्ट सूचक के बराबर उपयोग हैं ?std :: बनाम std :: shared_ptr बनाम std :: weak_ptr unique_ptr बनाम std :: auto_ptr कच्चे संकेत बनाम
मेरे समझ कम है, लेकिन से मैं क्या इकट्ठा कर सकते हैं:
- कच्चे प्वाइंटर: केवल अगर तुम सच में, सच, सच में, सच, पता है कि तुम क्या कर रहे हैं और ध्यान से उपयोग के पीछे छिपा हुआ है का उपयोग एक इंटरफ़ेस
- std :: auto_ptr: अप्रचलित कभी नहीं का उपयोग करें।
- std :: unique_ptr: सिंगलटन सूचक है कि काम पर स्वामित्व हस्तांतरित करता है।
- std :: shared_ptr: संदर्भ सूचक है कि काम पर स्वामित्व का हस्तांतरण नहीं है, लेकिन इसके संदर्भ गिनती वृद्धि कर देता है गिना। जब सभी संदर्भ स्कोप छोड़ते हैं या स्पष्ट रूप से
std::shared_ptr::reset
अंतर्निहितdeallocator
कहा जाता है। - std :: weak_ptr: एक उप-प्रकार
std::shared_ptr
जो संदर्भ गणना में वृद्धि नहीं करता है और उसके माता-पिताstd::shared_ptr
मौजूद नहीं होने पर इसे अमान्य कर दिया जाता है। वापसी और अमान्य संदर्भ मई। हमेशा उपयोग करने से पहले जांचें।
रॉ सूचक समकक्ष उदाहरण
संदर्भ गिनती, कैश कार्यान्वयन:
class Keyboard {
public:
//...
static Keyboard* CreateKeyboard();
~Keyboard();
//...
private:
//...
Keyboard();
static Keyboard* _instance;
//...
};
सकल कोन: स्वामित्व के हस्तांतरण के साथ std::map<std::string, std::pair<long, BITMAP*> > _cache;
Singletons tainers, कोई स्वामित्व: स्थानिक विभाजन रेखांकन और पेड़, पुनरावृत्ति कंटेनर, आदि
समग्र कंटेनर, स्वामित्व: बड़े वस्तुओं।
--EDIT--
मैं काम कर रहा हूँ के रूप में मैं एक दिलचस्प मामले पर आया था, DeadMG ने बताया कि स्मार्ट संकेत संसाधन प्रबंधन की देखभाल करने के लिए आसान कपोल-कल्पना के रूप में प्रयोग की जाने वाली अपेक्षा की जाती है; फ़ाइल-स्कोप ऑब्जेक्ट्स के बारे में क्या है जो घोषणा के बिंदु पर ढेर पर नहीं बनाया जा सकता है बल्कि बाद में इसे बनाया जाना चाहिए?
मुझे समझ नहीं आता कि तुम क्या पूछ रहे हैं। कच्चे पॉइंटर्स के साथ स्मार्ट पॉइंटर व्यवहार को कैसे कार्यान्वित करें? –
मुझे नहीं पता कि यह सवाल क्या है, लेकिन यदि आप सिंगलटन पॉइंटर 'unique_ptr' को कॉल कर रहे हैं, तो मुझे संदेह है कि आपके यहां सिंगलटन का एक अलग अर्थ है। – Puppy
@NeilKirk सटीक विपरीत, वास्तव में, कच्चे पॉइंटर्स की तुलना में स्मार्ट पॉइंटर्स के उपयोग क्या हैं? यानी प्रत्येक स्मार्ट सूचक को प्रतिस्थापित करने के लिए क्या मुहावरे है? – Casey