C ++ 'da paylaşılan bir işaretçi için aşağıdaki gibi bir erişimci yöntemi yazıyorum:
class Foo {
public:
return_type getBar() const {
return m_bar;
}
private:
boost::shared_ptr<Bar> m_bar;
}
Dolayısıyla getBar()
, dönüş türünün sabitliğini desteklemek için boost::shared_ptr
, Bar
işaret ettiği değişikliklerin değiştirilmesini engelleyen bir olmalıdır . Benim tahminim ki shared_ptr<const Bar>
ben oysa, bunu dönmek istiyorum türüdür const shared_ptr<Bar>
farklı işaret edecek pointer kendisinin yeniden atanmasını engelleyecek Bar
ancak değiştirilmesine izin Bar
o Ancak, emin değilim için ... işaret ettiğinden. Kesin olarak bilen biri bunu onaylarsa ya da yanlış anlarsam beni düzeltirse çok memnun olurum. Teşekkürler!
const
Ne yani bunu _precedes, normalde değiştirir T *const
bir olduğu const
için işaretçi T
ve T const*
bir göstericidir const
T
. Önünde const
hiçbir şey olmadan kullanmaktan kaçınmak en iyisidir .
T *const
ve T const *
arasındaki fark aynıdır const shared_ptr<T>
veshared_ptr<const T>
*
ve->
bunu onaylayabilirsiniz.