C++带参数的单例模式

在 C++ 中实现带参数的单例模式可以通过以下步骤完成:

  1. 创建一个类,该类负责管理单例对象的创建和访问,并提供一个静态方法来获取单例对象。

  2. 在该类中添加一个私有的静态成员变量,用于保存单例对象的实例。

  3. 添加一个静态方法,用于获取单例对象的实例。在该方法中,可以根据参数的不同来创建不同的单例对象。

  4. 将构造函数设为私有,以防止外部代码直接实例化该类。

下面是一个简单的示例代码,演示了如何在 C++ 中实现带参数的单例模式:

```cpp

#include <iostream>

#include <string>

class Singleton {

public:

static Singleton* getInstance(const std::string& config) {

if (!instance) {

instance = new Singleton(config);

}

return instance;

}

void printConfig() {

std::cout << "Config: " << config << std::endl;

}

private:

Singleton(const std::string& config) : config(config) {}

static Singleton* instance;

std::string config;

};

Singleton* Singleton::instance = nullptr;

int main() {

Singleton* singleton1 = Singleton::getInstance("Config1");

singleton1->printConfig();

Singleton* singleton2 = Singleton::getInstance("Config2");

singleton2->printConfig();

return 0;

}

```

在上面的示例中,Singleton 类包含一个私有的静态成员变量 instance,用于保存单例对象的实例。getInstance() 方法接受一个参数 config,并根据参数来创建不同的单例对象。构造函数被设为私有,因此外部代码无法直接实例化 Singleton 类,只能通过 getInstance() 方法来获取单例对象。

相关推荐
lixzest1 分钟前
C++应用开发转到大模型应用开发路径
开发语言·c++·人工智能·python
越甲八千2 分钟前
windows调用C++动态库BOOL未定义
c++·windows·单片机
sxlishaobin6 分钟前
设计模式之享元模式
java·设计模式·享元模式
HL_风神8 分钟前
设计原则之开闭原则
c++·学习·设计模式·开闭原则
_OP_CHEN10 分钟前
【从零开始的Qt开发指南】(十七)Qt 事件详解:按键与鼠标事件的全方位实战指南
开发语言·c++·qt·前端开发·qt事件·客户端开发·gui开发
刀法孜然10 分钟前
23种设计模式 3 行为型模式 之3.5 memento 备忘录/快照模式
设计模式
郝学胜-神的一滴11 分钟前
深入理解Mipmap:原理、实现与应用
c++·程序人生·unity·游戏程序·图形渲染·unreal engine
__万波__12 分钟前
二十三种设计模式(二十一)--状态模式
ui·设计模式·状态模式
rgeshfgreh15 分钟前
C++内联函数与空指针详解
c++
CSDN_RTKLIB23 分钟前
强制类型转换取整规则
开发语言·c++