我有一个智能指针属性,我想为它创建一个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);
}