Я пишу метод доступа для общего указателя на С++, который выглядит примерно так:
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
, на которую он указывает. Однако я не уверен. Я был бы признателен, если кто-то, кто знает наверняка, может подтвердить это, или исправить меня, если я ошибаюсь. Спасибо!