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