版权声明:本文为博主原创文章,未经博主允许不得转载。 shared_ptr智能指针的一种,它的使用类似于auto_ptr. shared_ptr它有两个指针,一个指向引用计数,一个指向data.由于拥有引用计数,所有shared_ptr支持容器. shared_ptr的源码非常复杂这里也不做太多讲解 ...
分类:
其他好文 时间:
2017-07-28 00:23:10
阅读次数:
178
1. 从auto_ptr说起 先来一段简单的代码,看看auto_ptr的使用: 哦,被你发现了;auto_ptr的初衷是用来实现智能指针的,实现内存的自动回收。比如,代码中我new了一个A对象,但是却没有对应的delete A对象。嗯,这得解决多少麻烦事啊,真的是好东西,而且还这么好用。好用???如 ...
分类:
编程语言 时间:
2017-07-24 21:19:02
阅读次数:
270
stl中auto_ptr,unique_ptr,shared_ptr,weak_ptr四种智能指针的使用总结 (1)auto_ptr 主要用于解决资源自动释放的问题。防止用户忘记delete掉new申请的内存空间。使用auto_ptr会在离开变量的作用域之后直接调用析构函数进行资源释放。 但是,这是 ...
分类:
其他好文 时间:
2017-07-22 16:50:12
阅读次数:
713
weak_ptr是辅助shared_ptr的智能指针。就像它的名字一样。是个“弱”指针;仅有几个接口。仅能完毕非常少工作。它能够从一个shared_ptr或weak_ptr对象构造。获取对资源的观測权。它是没有共享资源的,所以它的对象的创建不会引起指针引用计数的添加,它的对象的析构也不会引起计数器的 ...
分类:
其他好文 时间:
2017-07-17 13:16:50
阅读次数:
257
C++堆内存管理 auto_ptr的缺陷 在很早的C++98之前,C++用"auto_ptr"智能指针来管理堆分配的内存,它的使用非常简单: auto_ptr ap(new int(1024)); 即将new操作返回的指针作为auto_ptr的初始值,不用调用delete即可实现堆内存的自动释放(如... ...
分类:
编程语言 时间:
2017-07-12 15:20:31
阅读次数:
313
1shared_ptr不明确的符号boost的一些库,比如share_ptr已经被高版本的stl采纳了.如果你一块儿用编译器当然搞不清你要用那个了.我想你肯定写了这样的东西usingnamespacestd;usingnamespacetr1;usingnamespaceboost;实际上两个智能指针是一样的,你只需要用一个即可.如果你一定要两..
分类:
其他好文 时间:
2017-07-10 16:41:50
阅读次数:
200
智能指针是什么,他的真面目就是一个类生成的对象,这个类中包含了基本的重载->、*等一些指针形态的用法,最主要的是这个类里面有一个指针参数:所有智能指针类中都有一个explicit构造函数,以指针作为参数。比如auto_ptr的类模板原型为: template<class T> class auto_ ...
分类:
其他好文 时间:
2017-07-08 20:19:18
阅读次数:
158
智能指针:shared_ptr 1、一个局部的shared_ptr 作为返回值过程:当shared_ptr 被创建的时候,自身的引用计数 +1,当前引用计数为 1 , 按值返回以后 引用计数 + 1 (拷贝构造函数,就是可以理解为基础类型的拷贝),当前引用计数为 2 ,函数执行完成之后,申请的sha ...
分类:
其他好文 时间:
2017-07-06 22:49:14
阅读次数:
195
A shared_ptr<> is a mechanism to ensure that multiple object owners ensure an object is destructed, not a mechanism to ensure multiple threads can acc ...
分类:
其他好文 时间:
2017-07-04 13:32:10
阅读次数:
154
C++ 智能指针详解 一、简介 由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。 用智能指针便可以有效缓解这类问题,本文主要讲 ...
分类:
编程语言 时间:
2017-06-28 13:09:34
阅读次数:
173