Я пишу метод аксесуара для спільного вказівника на C ++, який виглядає приблизно так:
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>
*і->підтвердити це.