У меня вопрос о 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
. Я прав, или я еще не понял?