单例模式在实际编程中可以说是用到的最广泛的设计模式,在实际编程的过程中,我们对某些资源往往要求只能有一个实例,打个比方,在做C++/C#开发时,每一个界面就是一个对象,对于这些窗体对象的操作,一般就是打开的窗体,对于窗体对象的操作就是单例模式的具体使用。

单例模式其实就3点,(1)私有构造函数 (2)私有指向类的静态指针变量 (3)公有获取静态指针变量的函数

1.定义单例类

#pragma once
#include <stdio.h>
class CSingleton
{
private:CSingleton(void);           //私有构造函数static CSingleton* single;  //私有静态指针变量
public:static CSingleton* GetInstance(); //公有获取指针变量void operation();
};
#include "Singleton.h"
CSingleton* CSingleton::single=NULL; //静态变量初始化CSingleton::CSingleton(void)
{}CSingleton* CSingleton::GetInstance() //注意这里前面不要加上static
{if(single==NULL){single=new CSingleton();}return single;
}void CSingleton::operation()
{printf("CSingleton operation\n");
}

2.实际调用

CSingleton* p1=CSingleton::GetInstance();
p1->operation();

构造函数私有就不能通过new来生成新的对象

CSingleton* p2=new CSingleton(); //这样是非法的

保证在整个程序中只有p1一个对象。

C++设计模式之Singleton模式(单例模式)相关推荐

  1. java设计模式:Singleton模式

    Singleton模式是java中用到最多的设计模式.用于控制的个数,防止多余的实例化及修改.在仅有一个对象存在时,操作很有效. 1.构造函数私有化,其它类不能实例化对象 2.引用私有化,没有其它的修 ...

  2. Java经典设计模式-创建型模式-单例模式(Singleton)

    2019独角兽企业重金招聘Python工程师标准>>> 单例模式(Singleton) 单例对象(Singleton)是一种常用的设计模式.在Java应用中,单例对象能保证在一个JV ...

  3. javascript设计模式-单体singleton模式(2)

    单体(singleton)模式是javascript中最基本但又是最有用的模式之一,它可能比其他任何模式都常用.这种模式提供了一种将代码组织为一个逻辑单元的手段,这个逻辑单元中的代码可以通过单一的变量 ...

  4. 设计模式 — 创建型模式 — 单例模式

    目录 文章目录 目录 单例模式 应用场景 编码示例 单线程中的单例模式 方式一.重载类构造器 方式二.实现单例装饰器 多线程中的单例模式 方式三.重载具有线程锁的类构造器 单例模式 单例模式,实现一个 ...

  5. Singleton模式(单例模式) 饿汉式和懒汉式

    目的:整个应用中有且只有一个实例,所有指向该类型实例的引用都指向这个实例. 好比一个国家就只有一个皇帝(XXX),此时每个人叫的"皇帝"都是指叫的XXX本人; 常见单例模式类型: ...

  6. 细颗粒度Singleton模式实现

    作为一个很典型的设计模式,Singleton模式常常被用来展示设计模式的技巧,并且随着技术的演进,.NET语言和Java都已经把经典<Design Patterns : Elements of ...

  7. java设计模式3--单例模式(Singleton)

    本文地址:http://www.cnblogs.com/archimedes/p/java-singleton-pattern.html,转载请注明源地址. 单例模式 保证一个类仅有一个实例,并提供一 ...

  8. 设计模式之单件模式(Singleton Pattern)

    一.单件模式是什么? 单件模式也被称为单例模式,它的作用说白了就是为了确保"该类的实例只有一个" 单件模式经常被用来管理资源敏感的对象,比如:数据库连接对象.注册表对象.线程池对象 ...

  9. 设计模式学习笔记——单例(Singleton)模式

    设计模式学习笔记--单例(Singleton)模式 @(设计模式)[设计模式, 单例模式, Singleton, 懒汉式, 饿汉式] 设计模式学习笔记单例Singleton模式 基本介绍 单例案例 类 ...

最新文章

  1. mysql reflush pri_mysql忘记root密码拯救方法(flush privileges)
  2. 谁是卧底的Android应用 (原型源码)
  3. mysql并发插入死锁_高并发下insert死锁 · Issue #ITUNR · baomidou/mybatis-plus - Gitee.com...
  4. 杨元庆:乐Pad更适合中国消费者
  5. 一.论文编写之工具记录
  6. 多少并发量算高并发_Linux服务端最大并发数是多少?
  7. Jmeter查看log日志
  8. 深入浅出MFC - C++ 重要性质
  9. 《凤凰项目》读书笔记二
  10. 【URLOS应用开发基础】10分钟制作一个nginx静态网站环境应用
  11. 新手程序员进阶必学,Python常用模块及用法汇总(内容较干建议收藏)
  12. 1055 集体照 (25分)
  13. html5扁平化设计库,5个大气漂亮的扁平化设计网站赏析|HTML5酷站
  14. win10系统查看占用端口
  15. 一堆Offer怎么选?这样做就不纠结了
  16. 《中国航海》投稿经验
  17. 【AWS云从业者基础知识笔记】——模块1:AWS服务简介
  18. 计算机技术在医学领域的运用,计算机在医疗系统中的应用
  19. 爬虫----dex2jar工具的安装与使用
  20. 用GIF图片来告诉大家程序猿的真实生活 ————“你熬了一整夜、耗了一整天,开始调试代码时:” 那张最有感觉了,你们感受一下。。。

热门文章

  1. 张敬富审计百度云资源_钟平逻辑英语资源百度云
  2. django xadmin ForeignKey display
  3. 关于null对象使用print方法打印问题总结,null+123打印结果是null123还是123?
  4. android canvas帧动画,html5视频,canvas,画布
  5. 天锦十字绣:网购退货催生退货运费险
  6. 天国近了(一) -- 揭穿OOP神话
  7. 使用OGR创建弧形图形
  8. 格式化信息窗口内容—ArcGIS API for JavaScript
  9. Genome2D官方博客及教程
  10. C#图片处理之:图片缩放和剪裁