C++ 11 智能指针 unique_ptr、shared_ptr 与 weak_ptr
C++ 11 中有 unique_ptr、shared_ptr 与 weak_ptr 等智能指针(smart pointer),定义在 <memory> 中,用于对动态资源进行管理,保证任何情况下,已构造的对象最终会销毁。
1. unique_ptr
unique_ptr 持有对对象的独有权,同一时刻只能有一个 unique_ptr 指向给定对象。
实现方式
举例
2. shared_ptr
shared_ptr 允许多个智能指针共享拥有同一堆分配对象的内存,一旦最后一个这样的指针被销毁,这个对象会被自动删除。
实现方式
举例
3. weak_ptr
weak_ptr 可以从一个 shared_ptr 或另一个 weak_ptr 对象构造,但并不拥有该内存,即 weak_ptr 的构造和析构不会增加和减少对象的引用计数。
实现方式
举例
4. auto_ptr
已被 deprecated,被 unique_ptr 替代。
网友评论