当前位置: 首页 > 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;
}

http://www.lryc.cn/news/215697.html

相关文章:

  • apache seatunnel支持hive jdbc
  • 【Git企业开发】第四节.Git的分支管理策略和bug分支
  • 玩转硬件之Micro:bit的玩法(四)——声控灯
  • STM32-创建项目流程
  • 软件测试 —— 移动端测试
  • PCL 计算一个平面与一个三角形的交线
  • Redis 应用问题
  • Java 谈谈你对OOM的认识
  • JavaScript中BOM与DOM
  • Nginx域名重定向(如何访问的域名和实际的数据请求路径不同,可解决前端跨域)
  • 2023年11月2日历史上的今天大事件早读
  • 红帽Redhat--Ansible实战1
  • 213. 打家劫舍 II
  • Spring 与 Spring Boot
  • Flutter 04 按钮Button和事件处理、弹框Dialog、Toast
  • thinkphp6多用用模式下缩短路由隐藏index应用名
  • AM@二阶常系数非齐次线性微分方程@待定系数法可解决的经典类型1
  • 大数据技术笔记
  • Vue 3 中的 Composition API
  • 《TCP/IP详解 卷一:协议》第5章的IPv4数据报的总长度字段出现“不需要大于576字节的IPv4数据报“相关内容的解释
  • PO-java客户端连接错误can not connect to server
  • PM2 vs Kubernetes:在部署 Node.js 服务时使用哪个?
  • 配置git并把本地项目连接github
  • pytorch笔记 GRUCELL
  • 不解压,也能列出文件信息
  • 微型计算机组成原理
  • 基站/手机是怎么知道信道情况的?
  • 进程/线程
  • Python 应用 之 转换音频格式
  • Oracle JDK 和OpenJDK两者有什么异同点