मैं स्मार्ट पॉइंटर्स का उपयोग कर क्लास सदस्य चर के लिए एक एक्सेसर बनाने का प्रयास कर रहा हूं।सदस्य चर के लिए एक स्मार्ट सूचक वापस कैसे करें?
class MyResource
{
};
class MyClass
{
public:
std::unique_ptr<MyResource> getResource();
private:
std::unique_ptr<MyResource> resource;
};
std::unique_ptr<MyResource> MyClass::getResource()
{
return this->resource;
}
त्रुटि मैं इस संकलन की कोशिश कर रहा हो: '< unique_ptr std :: _Ty>'
उपयोग नहीं कर सकते निजी सदस्य कक्षा में घोषित
.get
जोड़ना कोड यह निश्चित रूप से this->resource
काम नहीं करता है क्योंकि रिटर्न प्रकार बदलता है।
क्या मुझे यहां एक unique_ptr का उपयोग नहीं करना चाहिए? क्या यह सिर्फ एक वाक्यविन्यास मुद्दा है? क्या मैं पूरी तरह गलत ट्रैक पर हूं?
स्मार्ट संकेत के साथ मेरी पृष्ठभूमि: मैं कुछ साल के लिए सादे पुराने संकेत का उपयोग कर रहे हैं भाग में, क्योंकि मैं जब स्मार्ट संकेत की जो प्रकार का उपयोग करने का एक ठोस स्पष्टीकरण नहीं मिल रहा है और उनका उपयोग करने के बारे में कैसे जाना है। मैं बहाने करने से थक गया हूं, इसलिए मैं सिर्फ डाइविंग कर रहा हूं। मुझे लगता है कि मैं समझता हूं कि स्मार्ट पॉइंटर्स क्या हैं और उनका उपयोग क्यों करें, लेकिन मैं विवरणों का बहुत कम समझता हूं। फिलहाल मैं theendlessQ&Aaboutsmartpointers में पूरी तरह खो गया हूं।
आपको यहां एक अद्वितीय सूचक का उपयोग नहीं करना चाहिए। इसे मूल्य से वापस करें या इसे साझा सूचक बनाएं। – dwcanillas
@ ड्वाकनिलस या संदर्भ या कच्चे सूचक द्वारा इसे वापस करें। – Angew
@ एंज्यू हाँ, बिल्कुल। अद्वितीय पॉइंटर्स का पूरा बिंदु यह है कि वे अद्वितीय हैं, एक वस्तु के लिए एक सूचक है। – dwcanillas