我对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
。我是正确的吗,还是我还没理解?
std::shared_ptr
。如果不需要共享指针,请使用std::unique_ptr
。 - Some programmer dudeshared_ptr
就没有意义了。 - Ivaylo Strandjev