unique_ptr、scoped_ptr、shared_ptr的区别

为什么80%的码农都做不了架构师?>>>   hot3.png

unique_ptr:禁止拷贝,只能通过Move语义来转移。 release方法放弃内部对象的所有权,将内部指针置为空, 返回所内部对象的指针, 此指针需要手动释放 reset方法销毁内部对象并接受新的对象的所有权

scoped_ptr:不能转让管理权。也就是说,scoped_ptr禁止用户进行拷贝与赋值(除了使用reset成员函数重置内部指针所指的对象,又或者使用swap成员函数交换指针的所指的对象)。它能够保证在离开作用域后对象被自动释放。

shared_ptr:可以共享指针的所有权,内部通过指针的引用计数实现。

转载于:https://my.oschina.net/itfanr/blog/1829366

你可能感兴趣的:(unique_ptr、scoped_ptr、shared_ptr的区别)