c++中关于智能指针std::tr1::shared_ptr的用法
来源:互联网 发布:php substr_replace 编辑:程序博客网 时间:2024/06/11 18:49
智能指针本身绝对不能是动态分配的内存,不然智能指针就没有存在的意义了。智能指针有个数据成员,是个指针,至于什么类型,看你类模板怎么实现。这个指针才是动态分配内存的。只能本身必须是栈里分配内存。利用栈的自动回收数据的特性,在被系统西东回收时,调用智能指针类的析构函数,从而释放智能指针内部那个指针型数据成员所指向的内存。举个例子std::shared_ptr<int> p = std::shared_ptr<int>(new int);这样你就声明了一个智能指针p,并且为其内部的真实指针分配了内存空间。使用时p可以像一般指针那样用比如*p = 5;即给其赋值5。还有就是虽然你一开始new了,但是你不需要delete,只能指针会在其被系统销毁时,检查是否需要delete。你这个智能指针是share的,意味着支持共享真实指针的所有权。所以你还可以std::shared_ptr<int> q = p;这样p和q同时指向同一个内存。如果p失效了,p的析构函数不会delete真实指针,因为q还没失效。只有当q也失效,p才会在自己失效时自动delete掉内部的真实指针。这就是智能指针智能的地方
- c++中关于智能指针std::tr1::shared_ptr的用法
- 智能指针std::auto_ptr和tr1:shared_ptr用法
- 智能指针std::auto_ptr和tr1:shared_ptr用法(总结的最好的一篇)
- C++:智能指针-TR1的shared_ptr和weak_ptr使用介绍
- C++:智能指针-TR1的shared_ptr和weak_ptr使用介绍
- std::auto_ptr和tr1::shared_ptr的用法
- 引用计数智能指针std::tr1::shared_ptr与weak_ptr
- 智能指针tr1::shared_ptr、boost::shared_ptr使用
- C++ TR1 智能指针shared_ptr的使用(转)
- C++智能指针:TR1的 shared_ptr 和 weak_ptr 使用介绍
- 智能指针shared_ptr的用法
- 智能指针shared_ptr的用法
- 智能指针 tr1::shared_ptr和auto_ptr
- std::tr1::shared_ptr 使用的一点体会
- std::tr1::shared_ptr
- std::tr1::shared_ptr
- std::tr1::shared_ptr、std::tr1::weak_ptr及std::tr1::enable_shared_from_this
- 智能指针 shared_ptr 的用法误区.
- hdu 2089
- JS获取浏览器高度和宽度
- lucene安装配置及demo调试
- Java的对象引用和值引用
- jQuery 插件的放大镜效果
- c++中关于智能指针std::tr1::shared_ptr的用法
- Linux 基础知识 集合
- Ubuntu 下查看所有用户信息
- 哈夫曼数 归纳
- HTML中css和js链接中的版本号
- 阿里巴巴2013实习生招聘笔试题
- 在javaSE中使用Spring加载ApplicationContext.xml文件的方式
- 应用:CentOS SSH配置
- vim visual block