#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智能指针用法相关推荐

  1. C++11中的智能指针unique_ptr、shared_ptr和weak_ptr详解

    目录 1.引言 2.什么是智能指针? 3.在Visual Studio中查看智能指针的源码实现 4.独占式指针unique_ptr 4.1.查看unique_ptr的源码实现片段 4.2.为什么uni ...

  2. c++ 智能指针_详解 C++ 11 中的智能指针

    C/C++ 语言最为人所诟病的特性之一就是存在内存泄露问题,因此后来的大多数语言都提供了内置内存分配与释放功能,有的甚至干脆对语言的使用者屏蔽了内存指针这一概念.这里不置贬褒,手动分配内存与手动释放内 ...

  3. c++11中的智能指针

    在C++11中有四种智能指针,auto_ptr,shared-ptr,unique_ptr和weak-ptr,其中auto_ptr有许多不足之处,在C++11中已经建议废弃使用. 1. shared_ ...

  4. C++新特性探究(18.1):C++11 shared_ptr智能指针

      在实际的 C++ 开发中,我们经常会遇到诸如程序运行中突然崩溃.程序运行所用内存越来越多最终不得不重启等问题,这些问题往往都是内存资源管理不当造成的.比如:   有些内存资源已经被释放,但指向它的 ...

  5. 标准库中的智能指针shared_ptr

    智能指针的出现是为了能够更加方便的解决动态内存的管理问题.注:曾经记得有本书上说可以通过vector来实现动态分配的内存的自动管理,但是经过试验,在gcc4.8.5下是不行的.这个是容易理解的,vec ...

  6. 详解RAI I、C++中的智能指针以及一些常见的面试题

    RAII RAII(Resource Acquisition Is Initialization)是一种利用对象生命周期来控制程序资源(如内存.文件句柄.网络连接.互斥量等等)的简单技术. 用法 RA ...

  7. c++智能指针用法详解

    随笔 - 209   文章 - 2   评论 - 174 c++ 智能指针用法详解 本文介绍c++里面的四个智能指针: auto_ptr, shared_ptr, weak_ptr, unique_p ...

  8. C++11中shared_ptr的使用

    在C++中,动态内存的管理是通过一对运算符来完成的:new,在动态内存中为对象分配空间并返回一个指向该对象的指针,可以选择对对象进行初始化:delete,接受一个动态对象的指针,销毁该对象,并释放与之 ...

  9. C++中各种智能指针的实现及弊端(五)

    C++中各种智能指针的实现及弊端(五) 文章目录 C++中各种智能指针的实现及弊端(五) 一.std::shared_ptr的循环引用 **二.循环引用分析:** 三.解决方法: 四.weak_ptr ...

最新文章

  1. TeamLab安装及使用
  2. golang switch case语句 简介
  3. new hashmap 初始大小_害怕面试被问HashMap?这一篇就搞定了
  4. boost::spirit::karma::detail::format_manip相关的测试程序
  5. MySQL查询in操作 查询结果按in集合顺序显示(转)
  6. 收集的48个Shell脚本小技巧
  7. 汇编学习--7.13--转移指令
  8. C/C++[codeup 1927]字符串内排序
  9. 【学习笔记】流畅的Python第二版【第一章】
  10. 斯托尔兹(Stolz)定理
  11. [979]小米6X如何开启root权限
  12. Java Tomcat生成图片验证码不显示问题 超坑记录
  13. 产品思维训练 | 常见的用户增长手段有哪些?
  14. <choose>标签的使用
  15. win10停止更新_你的win10即将终止!各大版本服务终止日期大全,准备好了吗?...
  16. 为什么每次圣斗士出招前都要大喊一下大招?
  17. (转)从P1到P7——我在淘宝这7年
  18. 9.png 自带工具 ps 两种修改方式
  19. 数据仓库、数据整合、ETL、ELT和EII之间的区别?
  20. 探寻职业教育中的人工智能技术

热门文章

  1. SQL Server中CTE的另一种递归方式-从底层向上递归
  2. 动态多点*** 单云双HUB
  3. FileSaver、js-xlsx、SheetJS在线报表预览导出
  4. Android反编译分析工具
  5. NLP --- 最大熵模型的解法(GIS算法、IIS算法)
  6. 接口是java面向对象的实现机制之一_以下说法正确的是: ()_接口是Java面向对象的实现机制之一,以下说法正确的是:( )...
  7. java的基本数据类型有八种
  8. 黑龙江省计算机应用能力考试,2020黑龙江省一级计算机基础及MS Office应用考试在线自测试题库(不限设备,登陆即可做题)...
  9. ABP之Javascript生成
  10. BZOJ2658 ZJOI2012 小蓝的好友(treap)