使用智能指针属性创建 setter 函数?
Create a setter function by using a smart pointer Attribute?
我有一个智能指针属性,我想为它创建一个 setter 函数。
我知道有一种方法可以做到这一点:
void setB(std::shared_ptr<B> b)
{
//b_ptr is a shared_ptr
b_ptr = b;
}
如何创建一个 setter 如下
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);
}
我有一个智能指针属性,我想为它创建一个 setter 函数。
我知道有一种方法可以做到这一点:
void setB(std::shared_ptr<B> b)
{
//b_ptr is a shared_ptr
b_ptr = b;
}
如何创建一个 setter 如下
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);
}