C++实现单例模式

#include <iostream>

class Singleton {

private:

static Singleton* instance; // 指向单例实例的指针

Singleton() {} // 私有构造函数

public:

// 获取单例对象的唯一全局访问点

static Singleton* getInstance() {

if (instance == nullptr) { // 懒加载

instance = new Singleton();

}

return instance;

}

// 示例成员函数

void doSomething() {

std::cout << "Doing something..." << std::endl;

}

};

Singleton* Singleton::instance = nullptr; // 静态初始化单例实例

int main() {

Singleton* s1 = Singleton::getInstance();

Singleton* s2 = Singleton::getInstance();

// 验证s1和s2是否指向同一个对象

if (s1 == s2) {

std::cout << "s1 and s2 are the same instance." << std::endl;

}

s1->doSomething();

s2->doSomething();

return 0;

}

相关推荐
峥嵘life2 分钟前
Android16 系统 APEX 模块调试总结
android·大数据·开发语言
OPEN-F10 分钟前
C++进阶教程:类与对象深入
java·开发语言·c++
AI人工智能+电脑小能手12 分钟前
大白话说Java设计模式-42-访问者模式(业务实战篇)
java·spring·设计模式·访问者模式·asm·营销规则·数据结构与操作分离
彷徨而立21 分钟前
【C++11】内存模型的逻辑时序关系 happens‑before
c++
ttwosix27 分钟前
JavaEE初阶 多线程:单例模式 | 阻塞队列
java·开发语言
独立开发之道27 分钟前
【Three.js教程】 图元速查:官方内置的立体图形
开发语言·javascript·ecmascript
Htr_30 分钟前
Python面向对象编程:类与对象基础
开发语言·python
RD_daoyi30 分钟前
谷歌改写了76%的标题:超60字符的,95%会被谷歌自己重写
大数据·服务器·开发语言·前端·搜索引擎·html
weixin_3077791332 分钟前
AI生成代码的隐患与治理:人工审查流程及提示词驱动的修复策略
开发语言·人工智能·算法
Java后端的Ai之路36 分钟前
09、Python组合模式
开发语言·人工智能·python·docker·组合模式