我有一个关于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
. 我是对的,还是我还不明白?