次のようなC ++の共有ポインターのアクセサーメソッドを書いています。
class Foo {
public:
return_type getBar() const {
return m_bar;
}
private:
boost::shared_ptr<Bar> m_bar;
}
したがってgetBar()
、戻り値の型のconst-nessをサポートするためにboost::shared_ptr
は、Bar
それが指す変更を防ぐ必要があります。私の推測では、それshared_ptr<const Bar>
は私が戻りたいタイプですconst shared_ptr<Bar>
が、ポインタ自体が別のものを指すように再割り当てすることはできませんが、それが指すBar
ものの変更は許可さBar
れます...しかし、私にはわかりません。確実に知っている人がこれを確認するか、間違った場合は修正していただければ幸いです。ありがとう!
const
通常、_preceedの内容を変更するためT *const
、へのconst
ポインタT
でありT const*
、へのポインタconst
T
です。また、そのconst
前に何も付けずに使用しないことをお勧めします。
T *const
とはT const *
違いと同じである const shared_ptr<T>
とshared_ptr<const T>
*
し、->
これを確認します。