当前位置: 首页 > news >正文

C++ 单例模式

C++ 单例模式跟Java中的单例模式没什么区别

什么是单例? 

单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例

什么时候使用单例

1个类里面的方法要在很多地方都使用到的时候建议使用单例。

 单例的3个步骤,也是判断是否是单例的依据

1 就是创建1个静态的类

2 私有化构造方法

3 获取唯一的对应

demo练习

创建1个fun1.h文件,内容如下

class Singleton{private:Singleton();static Singleton* mInstance;public:~Singleton();static Singleton* getInstance();void init();   
};

创建1个fun1.cpp文件内容如下

#include <iostream>
#include <string>
#include "fun1.h"
using namespace std;
// 创建1个静态的类
Singleton* Singleton::mInstance =NULL;
// 私有化构造方法
Singleton::Singleton()
{}
// 析构函数销毁的时候用到
Singleton::~Singleton(){}
// 获取唯一的对象
Singleton* Singleton::getInstance(){if (mInstance ==NULL){mInstance == new Singleton();}return mInstance;}
// 类Singletion下的一个方法
void Singleton::init(){cout<<"单例模式"<<endl;
}int main()
{Singleton* singletion =Singleton::getInstance();singletion->init();
//  或者
//  Singleton::getInstance()->init();return 0;
}

相关文章:

  • 学习redis之前的泛泛而谈(特性介绍,应用场景,Ubuntu安装与通用命令介绍)
  • KnowledgeGPT:利用检索和存储访问知识库上增强大型语言模型10.30
  • VMware虚拟网络连接的三种方式
  • 面试算法44:二叉树中每层的最大值
  • N-131基于jsp,ssm物流快递管理系统
  • 【C语言】字符串与指针
  • Mac/Linux类虚拟机_CrossOver虚拟机CrossOver 23.6正式发布2024全新功能解析
  • 实现基于 Azure DevOps 的数据库 CI/CD 最佳实践
  • Log4j-tag丢失
  • 力扣刷题 day61:10-31
  • 【10种排序算法总结】C++实现
  • AI:45-基于深度学习的声纹识别
  • Oracle数据库创建Sequence序列的基本使用
  • JAVA同城货运搬家小程序系统的开发优势
  • 什么是 CNN? 卷积神经网络? 怎么用 CNN 进行分类?(2)
  • canvas 五子棋游戏
  • download使用浅析
  • Golang-长连接-状态推送
  • HTTP中的ETag在移动客户端的应用
  • Laravel 中的一个后期静态绑定
  • learning koa2.x
  • PAT A1017 优先队列
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 浅谈web中前端模板引擎的使用
  • 使用Swoole加速Laravel(正式环境中)
  • 听说你叫Java(二)–Servlet请求
  • 网络应用优化——时延与带宽
  • 微信小程序开发问题汇总
  • 微信小程序填坑清单
  • 怎样选择前端框架
  • gunicorn工作原理
  • linux 淘宝开源监控工具tsar
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • #QT(TCP网络编程-服务端)
  • #宝哥教你#查看jquery绑定的事件函数
  • (2)Java 简介
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (汇总)os模块以及shutil模块对文件的操作
  • (力扣)1314.矩阵区域和
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (四)图像的%2线性拉伸
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • ****Linux下Mysql的安装和配置
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .net mvc部分视图
  • .NET 中让 Task 支持带超时的异步等待
  • .NET4.0并行计算技术基础(1)
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • .NET中 MVC 工厂模式浅析
  • .net中的Queue和Stack
  • @Autowired注解的实现原理