![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
智能指针
文章平均质量分 66
uestc-leon
我想做一个强者
展开
-
c++11:智能指针之weak_ptr
1、为什么需要weak_ptr?在正式介绍weak_ptr之前,解决shared_ptr的循环引用问题。C++11引入了weak_ptr,来打破这种循环引用。2、weak_ptr是什么?weak_ptr是为了配合shared_ptr而引入的一种智能指针,它指向一个由shared_ptr管理的对象而不影响所指对象的生命周期,也就是将一个weak_ptr绑定到一个shared_ptr不会改变share...转载 2017-09-23 16:33:54 · 747 阅读 · 0 评论 -
《C++ 沉思录》阅读笔记——句柄类(智能指针)
在上一篇博文里,我介绍了代理类的相关内容,如果记性好的朋友,应该已经对代理类有了比较深入的认识。在设计代理类的过程中,我们遇到的核心问题是:内存的分配和编译时类型未知对象的绑定。我们通过让所有子类自定义一个 copy 函数,来返回自身的复制,这种方式来解决需要我们自己来管理内存的繁琐,又通过定义代理类绑定子类的类型,通过一个基类指针来保存子类这种方式来实现运行时绑定。但对代码的追求是永无止尽的,虽...转载 2018-03-16 10:24:12 · 453 阅读 · 0 评论 -
c++11:智能指针之shared_ptr
c++11提供了三种智能指针:std::shared_ptr,std::unique_ptr和weak_ptr,使用时需要引用头文件< memory >shared_ptr共享的智能指针shared_ptr使用引用计数,每使用它一次内部引用计数加一,没析构一次,引用计数减一,减为0时释放所指向的堆内存。初始化可以通过以下三种方法初始化shared_ptr 构...原创 2017-09-23 15:10:49 · 1848 阅读 · 0 评论 -
c++11:智能指针之unique_ptr
unique_ptr 不共享它的指针。它无法复制到其他 unique_ptr,无法通过值传递到函数,也无法用于需要副本的任何标准模板库 (STL) 算法。只能移动unique_ptr。这意味着,内存资源所有权将转移到另一 unique_ptr,并且原始 unique_ptr 不再拥有此资源。我们建议你将对象限制为由一个所有者所有,因为多个所有权会使程序逻辑变得复杂。因此,当需要智能指针用于纯 C+...转载 2017-09-23 16:12:02 · 1535 阅读 · 0 评论 -
C++智能指针的简单实现
template <typename T>class smart_ptrs {public: smart_ptrs(T*); //用普通指针初始化智能指针 smart_ptrs(smart_ptrs&); T* operator->(); //自定义指针运算符 T& operator*(); //自定义解引用运算符 ...转载 2018-03-20 16:36:35 · 452 阅读 · 0 评论