C++之单例模式 📅 发布时间:2026/7/7 14:47:00 👁️ 浏览次数: 文章目录饿汉式懒汉式单例模式(Singleton Pattern也称为单件模式)使用最广泛的设计模式之一。其意图是保证一个类仅有一个实例并提供一个访问它的全局访问点该实例被所有程序模块共享面向对象编程中每个对象都应该抽象代表一个设备并通过对象完成对某个具体设备的管理和维护对于有些类只能有一个实例很重要例如打印机管理器、设备管理器、任务管理器等实现单例模式的三个主要步骤私有化构造函数使用静态成员变量维护唯一的单例对象定义静态成员函数用于获取单例对象私有化构造函数classSingleton{private:Singleton(void){...}Singleton(constSignletonthat){}...};使用静态成员变量维护唯一的单例对象classSingleton{private:Singleton(void){...}Singleton(constSignletonthat){}...staticSingleton s_instance;};Singleton Singleton::s_instance;定义静态成员函数用于获取单例对象classSingleton{private:Singleton(void){...}Singleton(constSignletonthat){}...staticSingleton s_instance;public:staticSingletongetInstance(void){returns_instance;}};Singleton Singleton::s_instance;饿汉式加载进程时即完成创建饿, 用不用都创建#includeiostreamusingnamespacestd;classSignleton{private:intm_i;Signleton(inti0){m_ii;}Signleton(constSignletonthat){}staticSignleton m_instance;public:staticSignletongetInstance(){returnm_instance;}voidprint(){coutm_iendl;}};Signleton Signleton::m_instance111;intmain(void){Signletons1Signleton::getInstance();Signletons2Signleton::getInstance();Signletons3Signleton::getInstance();//Signleton s4 12; //errorcouts1endl;couts2endl;s1.print();s2.print();return0;}懒汉式用时再创建懒不用再销毁#includeiostreamusingnamespacestd;classSignleton{private:intm_i;staticintm_count;//记录对象的引用次数staticSignleton*m_instance;Signleton(inti0){m_ii;coutconstructor endl;}Signleton(constSignletonthat){}public:staticSignletongetInstance(void){if(m_instanceNULL){m_instancenewSignleton(123);}m_count;return*m_instance;}voidrelease(){m_count--;if(m_count0){deletem_instance;m_instanceNULL;}}~Signleton(){}};Signleton*Signleton::m_instanceNULL;intSignleton::m_count0;intmain(void){//Signleton s1; //errorSignletons1Signleton::getInstance();Signletons2Signleton::getInstance();Signletons3Signleton::getInstance();couts1 s2 s3endl;// 三个引用地址相同s1.release();s2.release();s3.release();return0;}
STM32F103 USART3串口DMA接收不定长数据与中断发送实战解析 1. STM32F103 USART3串口DMA通信基础 搞嵌入式开发的朋友都知道,串口通信是最基础也最常用的功能。但传统的中断接收方式有个致命问题——每接收一个字节就触发一次中断,如果数据量大,CPU光处理中断就忙不过来了。我当年做第一个STM32项目时就… 2026/5/17 3:06:53
实战指南:如何利用扣子空间快速构建智能客服系统(含完整对话流程设计) 实战指南:如何利用扣子空间快速构建智能客服系统(含完整对话流程设计) 摘要:本文针对企业客服场景中响应效率低、人力成本高的问题,提供基于扣子空间的智能客服解决方案。通过分步演示智能体创建流程、对话状态机配置和… 2026/5/17 3:06:52
从图像拼接实战揭秘:Harris与SIFT如何联手打造无缝全景图 从图像拼接实战揭秘:Harris与SIFT如何联手打造无缝全景图 当我们需要将多张照片拼接成一张全景图时,计算机视觉中的特征点检测与匹配技术发挥着关键作用。本文将深入探讨如何结合Harris角点检测与SIFT特征匹配算法,通过OpenCV实现高质量的图… 2026/5/17 3:06:52
论文 AI 降重工具选型全指南:从安全、改写逻辑、查重适配三维筛选靠谱服务 又是一年论文季。打开查重报告,标红一片;提交AIGC检测,赫然显示“疑似AI生成比例过高”。更让人崩溃的是,重复率和AI率像跷跷板一样此消彼长——降了查重,AI痕迹反而更明显;去了AI味,重复率又反… 2026/7/8 2:35:28
STM32CubeIDE绚丽小灯 2245272269qq.com先点击STM32CubeIDE左上角的File,新建一个工程然后搜索你使用的芯片,可以添加收藏,点击那个五角星,然后点灯的原理图如图,进入芯片页面后,给PA7变成GPIO口相比于单色灯,这次把把… 2026/7/8 2:33:28
QQ 邮箱验证码 vs 短信验证码:3 个维度成本与可靠性对比分析 QQ 邮箱验证码 vs 短信验证码:3 个维度成本与可靠性对比分析在小型项目开发中,验证码系统是身份验证的核心组件。作为技术负责人,我们常常面临一个关键决策:使用免费的 QQ 邮箱验证码,还是选择付费的短信验证码服务&am… 2026/7/8 2:27:27
【C++】015、函数参数:值传递,指针传递,引用传递的区别 一、本质区别1、值传递是赋值粘贴,函数内获取的副本,不影响外部2、指针传递的是“邮寄地址”,可通过地址间接修改外部对象3、引用传递的是别名绑定,可直接操作原对象二、比对对比维度值传递指针传递引用传递传递内容实参的副本&am… 2026/7/8 2:27:27
电玩城测评 3 种拳击机器人:海岸城实测,为什么有的只热闹一阵,有的能拉起 PK 复玩 电玩城老板看拳击机器人,第一眼通常会被“热闹”吸引:有人围着看,有人拿手机拍,孩子会喊,朋友会起哄。 但设备能不能长期跑起来,不能只看第一眼。很多新设备刚进场都热闹,真正拉开差距的是后面… 2026/7/8 2:25:27
ZYNQ XCZU27DR FreeRTOS TTC 定时器中断学习笔记 TTCTriple Timer Counter被称为三重定时器/计数器它是 PS 内部的一种硬件外设。一个 TTC 模块内部包含多个相互独立的定时器计数通道。每个通道都可以独立完成:周期定时;向上或向下计数;计数值匹配;溢出检测;产生中断&… 2026/7/8 2:25:27
BetterNCM安装器:高效管理网易云插件的最佳选择 BetterNCM安装器:高效管理网易云插件的最佳选择 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 还在为网易云音乐插件的繁琐安装流程而烦恼吗?BetterNCM安装器是… 2026/7/8 0:02:48
运动控制系统安全设置对比:ECI3808的3种限位保护与急停逻辑实现 运动控制系统安全机制深度解析:限位保护与急停逻辑的设计哲学在精密制造与自动化领域,运动控制系统的安全设计绝非简单的功能堆砌,而是一套融合了机械工程、电气原理和软件算法的防御体系。当一台数控机床以每分钟数万转的速度运转࿰… 2026/7/8 0:06:48
AI大模型应用开发:小白也能抓住的红利风口,收藏这篇入门指南! 文章指出,虽然微软等科技巨头在裁员,但英伟达等公司却在积极扩招AI相关人才,尤其是具身智能、仿真等领域。AI行业正在经历结构性调整,传统岗位被淘汰,而大模型应用开发等新岗位需求旺盛。对于想转行或学习AI的普通人来… 2026/7/8 0:10:49
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/7 11:26:57
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/7 11:26:57
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/7 11:26:58