#pragma once#ifndef SINGLETON_H #define SINGLETON_H
#include <memory>
using namespace std;
class Singleton
{
private: Singleton(){};
public:// 静态成员函数,提供全局访问的接口 static Singleton* GetInstancePtr(); static Singleton  GetInstance(); void Test();
protected: // 静态成员变量,提供全局惟一的一个实例 static Singleton* m_pStatic;
}; #endif
#include "StdAfx.h"
#include "singleton_impl.h"
#include <iostream> // 类的静态成员变量要在类体外进行定义
Singleton* Singleton::m_pStatic = NULL; Singleton* Singleton::GetInstancePtr()
{if (NULL == m_pStatic) { m_pStatic = new Singleton(); } return m_pStatic;
} Singleton Singleton::GetInstance()
{ return *GetInstancePtr();
} void Singleton::Test()
{ std::cout << "Test!\n";
}
// Singleton.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"#include "singleton_impl.h"
#include <stdlib.h>
//保证一个类仅有一个实例,并提供一个访问它的全局访问点。
int _tmain(int argc, _TCHAR* argv[])
{// 不用初始化类对象就可以访问了 Singleton::GetInstancePtr()->Test(); Singleton::GetInstance().Test(); system("pause");return 0;
}

设计模式-创建型-单件相关推荐

  1. 设计模式-创建型模式-工厂模式(工厂三兄弟) TypeScript

    设计模式-创建型模式-工厂模式(工厂三兄弟) TypeScript 简单工厂模式 定义一个接口,三个具体类.然后书写如下,通过选择,生产出相应的对象 // 定义Shape接口 interface Sh ...

  2. 设计模式-创建型模式-建造者模式

    设计模式-创建型模式-建造者模式 建造者模式即生成器模式,将一个复杂的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 代码如下 // 产品类 public class Product{pu ...

  3. 设计模式-创建型模式-模板方法

    设计模式-创建型模式-模板方法 定义一个操作中的算法框架,将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义一个算法的步骤. protected 对于本包及其子类可见. 类图 代码 代 ...

  4. 设计模式-创建型模式-工厂模式(工厂三兄弟)

    设计模式-创建型模式-工厂模式(工厂三兄弟) 工厂模式分为简单工厂,工厂方法,抽象工厂. 简单工厂模式 一个接口,三个具体类,一个工厂,通过选择,生产出对应的对象. package demo2;pub ...

  5. 设计模式(创建型)之建造者模式(Builder Pattern)

    PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN.因为CSDN也支持MarkDown语法了,牛逼啊! [工匠若水 http://blog.csdn.net/yanbob ...

  6. 七大设计原则与设计模式(创建型模式、结构型模式、行为型模式)

    七大设计原则 开闭原则.依赖倒置原则.单一职责原则.接口隔离原则.迪米特法则(最少知道原则).里氏替换原则.合成 (组合).聚合复用原则 开闭原则 定义: 一个软件实体如类.模块和函数应该对扩展开放, ...

  7. 设计模式-创建型模式-抽象工厂模式

    工程源码:设计模式-创建型模式-抽象工厂模式https://download.csdn.net/download/qq_40788199/85544119 码云:设计模式-创建型模式-抽象工厂模式ht ...

  8. 设计模式-创建型模式-简单工厂模式

    工程地址:设计模式-简单工厂源码-C++文档类资源-CSDN下载C++设计模式-创建型模式-简单工厂模式源码更多下载资源.学习资料请访问CSDN下载频道.https://download.csdn.n ...

  9. 设计模式-创建型模式-工厂方法模式

    工程源码:c++设计模式-创建型模式-工厂方法模式https://download.csdn.net/download/qq_40788199/85541617 码云:https://gitee.co ...

最新文章

  1. List集合中两种遍历方式
  2. winrm service
  3. windows系统采用了那种访问控制模型_Linux-3.2 系统与硬件(下)(连载)
  4. 图论 —— 图的连通性 —— Tarjan 求割点与桥
  5. 浮动元素 —— 怎么使用它们、它们有什么问题以及怎么解决这些问题。
  6. 4广联达4代锁安装6.0_Aspen Plus 8.4 软件安装教程
  7. Web页面请求的历程(从应用层到链路层)
  8. c语言答案知码,C语言笔试习题集答案和解析.doc
  9. SQL Server-【知识与实战I】条件查询、比较运算符查询、模糊查询、枚举查询、范围查询、空值查询、多重条件查询
  10. byte拷贝java_Java字节流实现文件夹的拷贝
  11. 计算机病毒互助百科,病毒百科——计算机病毒分类
  12. RationalDMIS 2020高级教程之变量写入EXCEL
  13. 在MATLAB中实现均值变点法
  14. 手机web字体css设置,手机web字体css怎么设置微软雅黑
  15. 计算机操作系统原理——第一章.绪论
  16. dell刀片服务器 重启 维护,已解决: dell 刀片服务器内网网络问题 - Dell Community
  17. ps制作的html手机怎么使用,ps制作手机的教程
  18. T4 级老专家:AIOps 在腾讯的探索和实践
  19. [转帖]SD卡FLASHUSB
  20. 30、二维装箱(单品)

热门文章

  1. java 注解 数据字典_Spring实现数据字典翻译
  2. mysql图标_MySQL 支持 emoji 图标存储
  3. 数据结构实验之二叉树四:(先序中序)还原二叉树
  4. 顺序表应用4:元素位置互换之逆置算法
  5. VS2013导入opencv320配置属性文件
  6. 100个JavaScript代码片段
  7. 图像检索:再叙ANN Search
  8. 深度学习:Neural Network Layers Understanding
  9. Git与Repo入门
  10. 彻底理解JAVA动态代理