আমি সি ++ তে ভাগ করা পয়েন্টারের জন্য একটি অ্যাকসেসর পদ্ধতি লিখছি যা এরকম কিছু হয়:
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>
*
এবং->
এটি নিশ্চিত করার জন্য ডকুমেন্টেশনটি দেখতে পারেন ।