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

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.lqws.cn/news/209233.html

相关文章:

  • 二.单例模式‌
  • nonlocal 与global关键字
  • vue3 创建图标 按钮
  • rl_sar实现sim2real的整体思路
  • Jetpack Compose瀑布流实现方案
  • 设计模式-观察着模式
  • 行为型设计模式之Interpreter(解释器)
  • C++常用的企业级日志库
  • DeepSeek-R1-0528:开源推理模型的革新与突破
  • 在Ubuntu22.04 系统中安装Docker详细教程
  • 低代码平台前端页面表格字段绑定与后端数据传输交互主要有哪些方式?华为云Astro在这方面有哪些方式?
  • 银行卡二三四要素实名接口如何用PHP实现调用?
  • Linux操作系统故障应急场景及对应排查方法
  • Linux 系统中的算法技巧与性能优化
  • code-server安装使用,并配置frp反射域名访问
  • 【PCIe总线】 -- PCI、PCIe相关实现
  • Java高级 | 【实验七】Springboot 过滤器和拦截器
  • WPF 播放器(AudioPlayer 2025)
  • vue · 插槽 | $slots:访问所有命名插槽内容 | 插槽的使用:子组件和父组件如何书写?
  • mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
  • 【数据结构】6. 时间与空间复杂度
  • STM32学习笔记:外部中断(EXTI)原理与应用详解
  • 如何使用Jmeter进行压力测试?
  • NLP学习路线图(三十一): 迁移学习在NLP中的应用
  • 知识改变命运?如何有规划的学好计算机专业?
  • 元器件基础学习笔记——结型场效应晶体管 (JFET)
  • MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
  • 力扣-17.电话号码的字母组合
  • DL00335-基于深度学习YOLOv11的煤矸石检测含完整数据集
  • Qt Test功能及架构