Saya menulis metode pengakses untuk penunjuk bersama di C ++ yang berjalan seperti ini:
class Foo {
public:
return_type getBar() const {
return m_bar;
}
private:
boost::shared_ptr<Bar> m_bar;
}
Jadi untuk mendukung keteguhan getBar()jenis kembalian haruslah boost::shared_ptryang mencegah modifikasi dari Barpoin itu. Dugaan saya adalah shared_ptr<const Bar>tipe yang ingin saya kembalikan untuk melakukan itu, sedangkan const shared_ptr<Bar>akan mencegah penugasan ulang pointer itu sendiri untuk menunjuk ke yang berbeda Bartetapi memungkinkan modifikasi dari Baryang ditunjukkannya ... Namun, saya tidak yakin. Saya akan menghargai jika seseorang yang tahu pasti bisa mengkonfirmasi ini, atau mengoreksi saya jika saya salah. Terima kasih!
constbiasanya memodifikasi apa _precedes, jadi T *constadalah constpointer ke T, dan T const*adalah pointer ke const T. Dan yang terbaik adalah menghindari penggunaan consttanpa apa pun sebelumnya.
T *constdan T const *sama dengan perbedaan antara const shared_ptr<T>danshared_ptr<const T>
*dan->untuk memastikannya.