#include <iostream>
#include <memory>using namespace std;class Singleton {
public:static Singleton* GetInstance() {if(NULL == single_.get()) {single_ = auto_ptr<Singleton>(new Singleton);}return single_.get();//get()方法返回原生指针,release()方法会释放所有权,返回指针}   ~Singleton() {std::cout << "~Singleton::Singleton()" << std::endl;}void Print() {std::cout << "Singleton::Print" << std::endl;}
private:static auto_ptr<Singleton> single_;Singleton() {std::cout << "Singleton::Singleton()" << std::endl;}Singleton& operator=(const Singleton&) {}Singleton(const Singleton&) {}
};auto_ptr<Singleton> Singleton::single_;
int main() {Singleton::GetInstance()->Print();Singleton* single1 = Singleton::GetInstance();single1->Print();return 0;
}

智能指针auto_ptr管理单例相关推荐

  1. C++——智能指针——auto_ptr、shared_ptr、unique_ptr

    1.4.智能指针 智能指针是行为类似于指针的类对象. C++11 中提供了三种智能指针,使用这些智能指针时需要引用头文件 : ·shared_ptr; ·unique_ptr; ·auto_ptr; ...

  2. 智能指针——auto_ptr

    1. 开篇 C++里面的四个智能指针:auto_ptr.unique_ptr.shared_ptr.weak_ptr,其中后三个是C++11支持,而这个auto_ptr已经被C++11弃用.但auto ...

  3. c++系列 —— 智能指针auto_ptr和unique_ptr

    往期地址: c++系列一 -- c++的封装 c++系列二 -- c++的继承 c++系列三 -- 继承和多态特性 c++系列四 -- 运算符重载 c++系列五 -- 静态成员和静态类 c++系列六 ...

  4. C++的智能指针auto_ptr、unique_ptr源码解析

    C++的智能指针auto_ptr.unique_ptr源码解析 1.前言 2.源码准备 3.源码解析 3.1.auto_ptr解析 3.2.unique_ptr解 3.3.unique_ptr的一个偏 ...

  5. 模拟实现智能指针auto_ptr,scoped_ptr,shared_ptr

    智能指针,顾名思义它是一个聪明的指针,那么到底聪明到哪了呢,让我们一起来看以下的代码. void test1() //内存泄露 {int *p = new int(1);if (1){//...ret ...

  6. C++ -- 智能指针 auto_ptr,unique_ptr,shared_ptr的简单实现和原理

    一,为什么需要智能指针 智能指针是一种预防型的内存泄漏的解决方案.由于C++没有垃圾回收器机制,所以每次new出来的资源都需要手动的delete,如果没有手动释放,就会造成资源泄漏等问题.因此,为了避 ...

  7. 智能指针auto_ptr介绍

    我们大家都知道,new一定要和delete配合使用,但是有一种情况可能会使这种配对失效,如下程序: #include <iostream> using namespace std; cla ...

  8. c++string 加引号_C++|引用计数与shared_ptr智能指针(以实现String类为例)

    C++ 中,动态内存的管理是通过一对运算符来完成的,new 用于申请内存空间,调用对象构造函数初始化对象并返回指向该对象的指针.delete接收一个动态对象的指针,调用对象的析构函数销毁对象,释放与之 ...

  9. C++智能指针剖析(上)std::auto_ptr与boost::scoped_ptr

    1. 引入 C++语言中的动态内存分配没有自动回收机制,动态开辟的空间需要用户自己来维护,在出函数作用域或者程序正常退出前必须释放掉. 即程序员每次 new 出来的内存都要手动 delete,否则会造 ...

最新文章

  1. Go 学习笔记(64)— Go error.New 创建接口错误对象、fmt.Errorf 创建接口错误对象、errors.Is 和 errors.As
  2. ai中如何插入签名_联络中心如何在机器人和对话式AI迷宫中导航
  3. mysql5.7.22并行回放_MySQL 5.7并行复制时代
  4. 虚拟机链接ftp服务器,linux虚拟机连接ftp服务器
  5. Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法](转)
  6. SAP Hybris backoffice登录时的语言选择
  7. C++ auto_ptr存在的问题
  8. 将Sublime Text 2配置为C#代码编辑器(附配置文件)
  9. asp.net mvc 过滤器
  10. 独家对话华为王成录:手机 HarmonyOS 开发者 Beta 版将如约而至
  11. HTML中常用的列表标签
  12. Mac电脑Finder侧边栏不显示iCloud云盘,如何添加
  13. SQL Server跨库访问
  14. 武士2复仇 Unity游戏工程+源码
  15. qq发的html文件打不开,Win10系统下QQ能上网页却无法打开的三种解决方案
  16. php无版权图库api,12个无版权限制的大图特供网站_交互设计教程
  17. cubieboard服务器系统,cubieboard 搭建家用服务器
  18. linux入侵检测工具之aide
  19. Win11卸载程序在哪里?Win11卸载软件的两种方法
  20. java波斯王子武者之心,波斯王子2:武者之心通关攻略

热门文章

  1. 基于mapreducer的图算法
  2. Android开发技巧——PagerAdapter再简单的包
  3. 隐马尔科夫模型,第三种问题解法,维比特算法(biterbi) algorithm python代码
  4. 为vsftpd添加虚拟用户的脚本
  5. 指针函数的一个范例,在单片机上运用它能让您的程序结构更明朗清晰,层次感强...
  6. 常见解压缩软件与其zip格式
  7. 带有行数和标尺的RichTextBox
  8. angular HttpClient getbyid 方法获取数据
  9. 名企笔试:京东 2016 算法工程师笔试题(登楼梯)
  10. kibana安装与基础用法