目前,我正在使用Boost库中的共享指针。
class A
{
};
main
{
boost::shared_ptr<class A> classpointer;
}
在什么情况下,“classpointer”计数器会增加?
答案 0 :(得分:1)
目前,指针为空,计数为零。
当您分配对象的所有权时,它将增加到1,例如
classpointer.reset(new A); // owns the object, count=1
如果复制此指针或任何其他共享同一对象所有权的指针,则计数将递增。如果您销毁任何此类指针,或将其重新分配给其他对象,或将其重置为空,它将被递减。
通常,特定对象的计数等于当前共享其所有权的共享指针的数量。当计数变为零时,没有指针仍然共享所有权,该对象将被自动删除。