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

c++ 单例模式

MySingleton.h头文件内容:

#pragma once
#include <iostream>class MySingleton
{
public:static MySingleton& getInstance() { // 单例,  搜了下静态成员函数中含有静态局部变量, 建议把函数实现放在头文件,成为隐式内联函数static MySingleton instance; // 局部静态变量,c++11保证其线程安全return instance;}// 禁止拷贝和赋值MySingleton(const MySingleton&) = delete;MySingleton& operator=(const MySingleton&) = delete;~MySingleton();void print() const;void setAge(int age);private:MySingleton() = default; // = default表示显式要求编译器生成该构造函数的默认实现int age;
};

MySingleton.cpp源文件:

#include "MySingleton.h"MySingleton::~MySingleton() { std::cout << "析构MySingleton" << std::endl; }void MySingleton::print() const {std::cout << "age: " << age << std::endl;
}void MySingleton::setAge(int age) {this->age = age;
}

测试代码:

#include "MySingleton.h"void testSingleTon() {MySingleton& singleton = MySingleton::getInstance();singleton.setAge(9527);MySingleton* singleton2 = &MySingleton::getInstance();singleton2->print();
}

打印:

ok. 符合预期。

http://www.xdnf.cn/news/12494.html

相关文章:

  • Android和硬件通信
  • 二.单例模式‌
  • Shell: 解决文件复制后权限变化问题
  • 两阶段提交
  • 7.2.1_顺序查找
  • Linux 初始化与服务管理全解析:rc.d、systemctl与service对比
  • 我用AI降低AI率:一次“用魔法打败魔法”的实验
  • 深入理解 Python `asyncio` 的子进程协议(Subprocess Protocol)
  • 离散傅里叶级数(DFS)的用途
  • Qt生成日志与以及捕获崩溃文件(mingw64位,winDbg)————附带详细解说
  • DevSecOps新理念
  • 【信息系统项目管理师-选择真题】2025上半年(第二批)综合知识答案和详解(回忆版)
  • flex布局 flex:1里面的盒子内容过多溢出处理
  • FISCO-BCOS 联盟链 caliper测试示例非常完善
  • vxe-table 如何设置单元格垂直对齐
  • PP-OCRv5_server_det.yml参数解释
  • Java中==和equals的区别
  • 如何使用索引和条件批量更改Series数据
  • VS如何编译QuaZip库
  • MPO接口型光模块的失效检测
  • boost::qvm 使用示例
  • EtherNet/IP转DeviceNet协议网关详解
  • 手机号段数据库的作用
  • 【技术】跨设备链路聚合的技术——M-LAG
  • 扫地机器人舵机方案升级,舵机品牌伟创动力Kpower方案评测
  • MS31912TEA 多通道半桥驱动器 氛围灯 照明灯 示宽灯 转向灯驱动 后视镜方向调节 可替代DRV8912
  • UFC911B108 3BHE037864R0108
  • 电工基础【8】常用的电气元件符号
  • 发版前后的调试对照实践:用 WebDebugX 与多工具构建上线验证闭环
  • 五子棋网络对战游戏的设计与实现设计与实现【源码+文档】