当前位置: 首页 > 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. 符合预期。

相关文章:

  • Qwen 大模型-对话模板中system与user的区别解析
  • 孙溟㠭浅析清朝“徽派”篆刻
  • 抗辐照MCU在卫星载荷电机控制器中的实践探索
  • Doris 数据库深度解析:架构、原理与实战应用
  • 自动驾驶---SD图导航的规划策略
  • 【氧化镓】HTFB应力对β - Ga2O3 SBD的影响
  • 【Java学习笔记】包装类
  • python版若依框架开发:后端开发规范
  • 快速部署和启动Vue3项目
  • C++:用 libcurl 发送一封带有附件的邮件
  • 让DeepSeek写2025年高考作文
  • CANoe trace里面显示的Time 具体是什么意思
  • 在C语言中使用UUID作为AES加密密钥
  • 通过nohup命令,实现将指定文件快速上传到KS3
  • JAVA-springboot log日志
  • 打卡第38天:早停策略和模型权重的保存
  • C++图书管理
  • 使用 Redisson 实现分布式锁—解决方案详解
  • MySQL复杂SQL(多表联查/子查询)详细讲解
  • 安达发|装饰材料行业APS生产排程软件:破解生产困局,智造升级新引擎
  • 厦门 外贸商城网站制作/成都网站seo厂家
  • app产品网站建设/二级域名网站查询入口
  • wordpress维护插件/湖南广告优化
  • 南京企业做网站/百度seo原理
  • 自适应网站建设/推广策划
  • 求网站开发客户/google关键词推广