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

C++_单列模式介绍

介绍

  • (1)…什么是单例
    1.只能有一个实例化的对象的类
  • (2).单例有什么用
    1.多线程的线程池的设计
    2.系统中只需要一个窗口时才使用单例(无法重复创建)
    3.一个操作系统只能有一个文件系统
  • (3).单例怎么用
    1.隐藏所有构造函数
    2.静态成员内部调用构造函数实例化
    3.提供一个静态函数来返回静态成员对象

源码

#include<iostream>
#include<string>using namespace std;
//不管用不用,程序开始就会实例化一个对象(饿汉式)
#if 1class single
{
public://调用实例化static single& getinstance(){return s_instance;}
private:single(){}//构造single(int data) :m_data(data){}//初始化单参构造single(const single&){}//拷贝构造int m_data;static single s_instance;//静态成员变量引用};
single single::s_instance(100);//自动调用构造函数
#endif//直到使用时才实例化对象,如果不被调用就不会占用内存(懒汉式)
#if 1
class singletol
{
public://调用实例化static singletol* getinstance(){if (!s_instance){s_instance = new singletol(200);}return s_instance;}
private:singletol(){}//构造singletol(int data) :m_data(data){}//初始化单参构造singletol(const single&){}//拷贝构造int m_data;static singletol* s_instance;//静态成员变量引用};
singletol* singletol::s_instance(NULL);//自动调用构造函数
#endif
void main()
{
//懒汉式(创建地址不一致)singletol *s1 = singletol::getinstance();singletol *s2 = singletol::getinstance();cout << &s1 << " " << &s2 << endl;
//饿汉式(创建地址一致)single &st1 = single::getinstance();single &st2 = single::getinstance();cout << &st1 << " " << &st2 << endl;system("pause");
}

运行结果

00F1F8B8 00F1F8AC
00E10694 00E10694
请按任意键继续. . .
http://www.lryc.cn/news/266704.html

相关文章:

  • 油烟净化器如何做到高效净化?科技力量,清新餐饮生活
  • 【HTML5】HTML5 语音合成
  • 顺序表的实现
  • 深度学习中的池化
  • Java面试整理-Java设计模式
  • 用CHAT了解更多知识点
  • 一个利用摸鱼时间背单词的软件
  • Matlab/Simulink的一些功能用法笔记(3)
  • Wafer晶圆封装工艺介绍
  • Mac OS 13+,Apple Silicon,删除OBS虚拟摄像头(virtual camera),
  • 精解 ES6 Promise 用法
  • Linux之基础I/O
  • Linux开发工具——gcc篇
  • C#通讯——关于Winform中的简单的Http服务器与客户端
  • Mendelson AS2 介绍下载和配置
  • 旅游海报图怎么做二维码展示?扫码即可查看图片
  • 常用git指令
  • 【FPGA】分享一些FPGA协同MATLAB开发的书籍
  • 幺模矩阵-线性规划的整数解特性
  • 数据分析思维
  • C++ boost planner_cond_.wait(lock) 报错1225
  • LeetCode刷题--- 字母大小写全排列
  • 165. 小猫爬山(DFS之剪枝与优化)
  • 【Linux系统基础】(6)在Linux上大数据NoSQL数据库HBase集群部署、分布式内存计算Spark环境及Flink环境部署详细教程
  • 多维时序 | MATLAB实CNN-BiGRU-Mutilhead-Attention卷积网络结合双向门控循环单元网络融合多头注意力机制多变量时间序列预测
  • vs快捷键
  • linux 内核时间计量方法
  • 循环神经网络中的梯度消失或梯度爆炸问题产生原因分析(二)
  • JWT signature does not match locally computed signature
  • vitepress项目使用github的action自动部署到github-pages中,理论上可以通用所有