感觉网上的内容讲解的都不是太说到点子上,陈硕说的还是非常好的。
shared_ptr: 引用计数智能指针。 与auto_ptr
的区别是,shared_ptr
实现时包含一个引用计数(count-ref)。在一个shared_ptr
对象销毁的时候,会将引用计数减一,直到引用计数为0的时候才真正的会销毁其所指向的对象。
int main(){
shared_ptr<int> sp1(new int(3));
shared_ptr<int> sp2;
sp2 = sp1; //引用计数会增加1,不会导致所有权的转移。
return 0; //在函数结束的时候会调用这些局部变量的析构函数,会将引用计数减一,直到引用计数为0.
}