使用智能指针属性创建资源库函数?



我有一个智能指针属性,我想为它创建一个setter函数。

我知道有一种方法可以按以下方式执行此操作:

void setB(std::shared_ptr<B> b)
{
//b_ptr is a shared_ptr
b_ptr = b;
}

如何创建二传手作为以下内容

void setB(B * b)
{
// i want to assign b to b_ptr which b_ptr is a shared_ptr
}

如果你想转移函数中指针的所有权(删除的责任(,你可以这样做:

void setB(B* b)
{
b_ptr = std::shared_ptr<B>(b);
}

最新更新