C++11中shared_ptr智能指针用法
#include <memory>
#include <iostream>
using namespace std;class Test{//外部类及函数不可访问成员变量等
//struct Test{//外部类及函数可访问成员变量等,如:main.cpp可访问成员变量
public:Test();~Test();Test* init(float num = 0);Test* set();void end(float* fp, int offset = 0);static Test *Builder();
};
Test *Test::Builder(){return new Test;
}Test::Test(){cout << __FUNCTION__ <<"()" << endl;
}Test::~Test(){cout << __FUNCTION__ <<"()" << endl;
}Test* Test::init(float num){cout << __FUNCTION__ <<"()" << endl;return this;
}Test* Test::set(){cout << __FUNCTION__ <<"()" << endl;return this;
}void Test::end(float* fp, int offset){cout << __FUNCTION__ <<"()" << endl;return;
}//shared_ptr<Test> tt = shared_ptr<Test>(new Test);//heap
//shared_ptr<Test> tt;//stack
int main(){float *p;//1.shared_ptr//auto tt = shared_ptr<Test>(new Test);//auto tt = shared_ptr<Test>(Test::Builder());/*tt->set()->init()->end(p);*///2.shared_ptr<Test>(Test::Builder())->set()->init()->end(p);//3.static object
/*Test *ob = Test::Builder();ob->set()->init()->end(p);delete ob; */
}
C++11中shared_ptr智能指针用法相关推荐
- C++11中的智能指针unique_ptr、shared_ptr和weak_ptr详解
目录 1.引言 2.什么是智能指针? 3.在Visual Studio中查看智能指针的源码实现 4.独占式指针unique_ptr 4.1.查看unique_ptr的源码实现片段 4.2.为什么uni ...
- c++ 智能指针_详解 C++ 11 中的智能指针
C/C++ 语言最为人所诟病的特性之一就是存在内存泄露问题,因此后来的大多数语言都提供了内置内存分配与释放功能,有的甚至干脆对语言的使用者屏蔽了内存指针这一概念.这里不置贬褒,手动分配内存与手动释放内 ...
- c++11中的智能指针
在C++11中有四种智能指针,auto_ptr,shared-ptr,unique_ptr和weak-ptr,其中auto_ptr有许多不足之处,在C++11中已经建议废弃使用. 1. shared_ ...
- C++新特性探究(18.1):C++11 shared_ptr智能指针
在实际的 C++ 开发中,我们经常会遇到诸如程序运行中突然崩溃.程序运行所用内存越来越多最终不得不重启等问题,这些问题往往都是内存资源管理不当造成的.比如: 有些内存资源已经被释放,但指向它的 ...
- 标准库中的智能指针shared_ptr
智能指针的出现是为了能够更加方便的解决动态内存的管理问题.注:曾经记得有本书上说可以通过vector来实现动态分配的内存的自动管理,但是经过试验,在gcc4.8.5下是不行的.这个是容易理解的,vec ...
- 详解RAI I、C++中的智能指针以及一些常见的面试题
RAII RAII(Resource Acquisition Is Initialization)是一种利用对象生命周期来控制程序资源(如内存.文件句柄.网络连接.互斥量等等)的简单技术. 用法 RA ...
- c++智能指针用法详解
随笔 - 209 文章 - 2 评论 - 174 c++ 智能指针用法详解 本文介绍c++里面的四个智能指针: auto_ptr, shared_ptr, weak_ptr, unique_p ...
- C++11中shared_ptr的使用
在C++中,动态内存的管理是通过一对运算符来完成的:new,在动态内存中为对象分配空间并返回一个指向该对象的指针,可以选择对对象进行初始化:delete,接受一个动态对象的指针,销毁该对象,并释放与之 ...
- C++中各种智能指针的实现及弊端(五)
C++中各种智能指针的实现及弊端(五) 文章目录 C++中各种智能指针的实现及弊端(五) 一.std::shared_ptr的循环引用 **二.循环引用分析:** 三.解决方法: 四.weak_ptr ...
最新文章
- TeamLab安装及使用
- golang switch case语句 简介
- new hashmap 初始大小_害怕面试被问HashMap?这一篇就搞定了
- boost::spirit::karma::detail::format_manip相关的测试程序
- MySQL查询in操作 查询结果按in集合顺序显示(转)
- 收集的48个Shell脚本小技巧
- 汇编学习--7.13--转移指令
- C/C++[codeup 1927]字符串内排序
- 【学习笔记】流畅的Python第二版【第一章】
- 斯托尔兹(Stolz)定理
- [979]小米6X如何开启root权限
- Java Tomcat生成图片验证码不显示问题 超坑记录
- 产品思维训练 | 常见的用户增长手段有哪些?
- <choose>标签的使用
- win10停止更新_你的win10即将终止!各大版本服务终止日期大全,准备好了吗?...
- 为什么每次圣斗士出招前都要大喊一下大招?
- (转)从P1到P7——我在淘宝这7年
- 9.png 自带工具 ps 两种修改方式
- 数据仓库、数据整合、ETL、ELT和EII之间的区别?
- 探寻职业教育中的人工智能技术
热门文章
- SQL Server中CTE的另一种递归方式-从底层向上递归
- 动态多点*** 单云双HUB
- FileSaver、js-xlsx、SheetJS在线报表预览导出
- Android反编译分析工具
- NLP --- 最大熵模型的解法(GIS算法、IIS算法)
- 接口是java面向对象的实现机制之一_以下说法正确的是: ()_接口是Java面向对象的实现机制之一,以下说法正确的是:( )...
- java的基本数据类型有八种
- 黑龙江省计算机应用能力考试,2020黑龙江省一级计算机基础及MS Office应用考试在线自测试题库(不限设备,登陆即可做题)...
- ABP之Javascript生成
- BZOJ2658 ZJOI2012 小蓝的好友(treap)