У меня вопрос о std::unique_ptr и std::shared_ptr. Я знаю, что есть много вопросов о том, когда использовать какой, но я все еще не уверен, правильно ли я это понимаю. Я где-то читал, что выбор по умолчанию для интеллектуального указателя должен быть std::unique_ptr, но, насколько я понимаю, для моих нужд я должен использовать std::shared_ptr. Например, у меня есть:
class B;
class A
{
private:
B* b;
public:
B* getB();
};
A::getB()
{
return b;
}
Итак, в основном класс A владеет указателем на объект типа B и там есть метод, который возвращает этот указатель. Если я создаю getter, я предполагаю, что некоторый другой класс может получить доступ к этому указателю, и поэтому он должен быть shared_ptr вместо unique_ptr. Я прав, или я еще не понял?