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, Bariş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 Barancak değiştirilmesine izin Baro 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!
constNe yani bunu _precedes, normalde değiştirir T *constbir olduğu constiçin işaretçi Tve T const*bir göstericidir const T. Önünde consthiçbir şey olmadan kullanmaktan kaçınmak en iyisidir .
T *constve T const *arasındaki fark aynıdır const shared_ptr<T>veshared_ptr<const T>
*ve->bunu onaylayabilirsiniz.