Boost库中的共享指针

时间:2015-02-10 10:23:41

标签: c++ boost shared-ptr

目前,我正在使用Boost库中的共享指针。

class A
{
};
main
{
    boost::shared_ptr<class A> classpointer;
}

在什么情况下,“classpointer”计数器会增加?

1 个答案:

答案 0 :(得分:1)

目前,指针为空,计数为零。

当您分配对象的所有权时,它将增加到1,例如

classpointer.reset(new A);  // owns the object, count=1

如果复制此指针或任何其他共享同一对象所有权的指针,则计数将递增。如果您销毁任何此类指针,或将其重新分配给其他对象,或将其重置为空,它将被递减。

通常,特定对象的计数等于当前共享其所有权的共享指针的数量。当计数变为零时,没有指针仍然共享所有权,该对象将被自动删除。