मैं C ++ में एक साझा पॉइंटर के लिए एक एक्सेसर विधि लिख रहा हूं जो कुछ इस प्रकार है:
class Foo {
public:
return_type getBar() const {
return m_bar;
}
private:
boost::shared_ptr<Bar> m_bar;
}
तो getBar()रिटर्न प्रकार के कॉन्स्ट-नेस का समर्थन करने के लिए ऐसा होना चाहिए boost::shared_ptrजो Barइसे इंगित करने से रोकता है। मेरा अनुमान है कि shared_ptr<const Bar>वह वह प्रकार है जो मैं उसे करने के लिए वापस जाना चाहता हूं, जबकि const shared_ptr<Bar>पॉइंटर के पुन: असाइनमेंट को रोकने के लिए खुद को एक अलग इंगित करने के लिए रोकना होगा , Barलेकिन Barइसे संशोधित करने की अनुमति देता है ... हालांकि, मुझे यकीन नहीं है। मैं इसे सराहता हूँ अगर कोई व्यक्ति जो निश्चित रूप से जानता है वह इस बात की पुष्टि कर सकता है, या अगर मुझे यह गलत लगा तो मुझे सही कर सकता है। धन्यवाद!
constसामान्य रूप से संशोधित क्या यह _precedes, तो T *constएक है constकरने के लिए सूचक Tहै, और T const*करने के लिए एक सूचक है const T। और यह सबसे अच्छा है कि constइसे पूर्ववर्ती कुछ भी नहीं के साथ उपयोग करने से बचें ।
T *constऔर T const *के बीच अंतर के रूप में ही है const shared_ptr<T>औरshared_ptr<const T>
*और->इसकी पुष्टि कर सकते हैं।