C++ 中的单例模式singleton

C++ 中的单例模式

引言

在面向对象编程中,设计模式是解决常见问题的最佳实践。单例模式是其中之一,它确保一个类只有一个实例,并提供一个全局访问点来获取该实例。在本文中,我们将详细介绍 C++ 中的单例模式。

什么是单例模式?

单例模式是一种设计模式,它限制一个类只能创建一个对象。这个模式通常用于那些需要全局访问点的类,例如配置类或日志类。

单例模式的实现

以下是一个 C++ 单例模式的基本实现:

cpp 复制代码
class Singleton {
private:
    // 私有的默认构造函数
    Singleton() {}

    // 声明为私有的复制构造函数和赋值操作符,防止被复制和赋值
    Singleton(const Singleton&) = delete;
    Singleton& operator=(const Singleton&) = delete;

    // 静态的单例对象指针
    static Singleton* instance;
public:
    // 获取单例对象的函数
    static Singleton* getInstance() {
        if (instance == nullptr) {
            instance = new Singleton();
        }
        return instance;
    }
};

// 初始化静态成员变量
Singleton* Singleton::instance = nullptr;

在这个例子中,Singleton 类的构造函数是私有的,这意味着我们不能直接创建 Singleton 类的实例。我们只能通过 getInstance 函数来获取单例对象,如果单例对象还没有被创建,getInstance 函数就会创建一个。

总结

单例模式是一种常见的设计模式,它可以确保一个类只有一个实例,并提供一个全局访问点。通过理解和掌握单例模式,我们可以编写出更加健壮和灵活的 C++ 代码。

相关推荐
wdfk_prog5 小时前
嵌入式面试真题第 10 题:高优化等级下共享状态可见性、内存模型与系统级同步设计
java·linux·开发语言·面试·职场和发展·架构·c
卓怡学长5 小时前
w255基于springboot仓库管理系统
java·数据库·spring boot·spring·intellij-idea
闻道且行之7 小时前
TurboOCR:基于PP-OCRv6的极速Windows离线OCR工具,深度解析3.4GB依赖背后的技术架构
c++·人工智能·python·qt·机器学习·ocr
这个DBA有点耶7 小时前
SQL调优进阶:从“优化一条SQL”到“优化一个系统”的思维升级
java·大数据·数据库·sql·程序人生·dba·改行学it
csdn2015_8 小时前
springboot读取配置的方法
java·spring boot·spring
AOwhisky9 小时前
下一代容器来了?Docker 宣布原生支持 WebAssembly
java·运维·docker·容器·rust·wasm
c2385610 小时前
Bug 猎手入门指南
c++·算法·bug
云云只是个程序马喽10 小时前
海外短剧平台搭建方案:私有化源码系统选型|云微短剧系统技术架构拆解
java·php
C137的本贾尼12 小时前
第七篇:消息队列(MQ)——就是个带存储的异步通信管道
java·开发语言·中间件
Flittly12 小时前
【AgentScope Java新手村系列】(19)多模态-图像音频视频
java·spring boot·spring