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() 方法来获取单例对象。

相关推荐

  1. C++参数模式

    2023-12-20 10:42:03       53 阅读
  2. 模式C#】

    2023-12-20 10:42:03       54 阅读
  3. 模式C++)

    2023-12-20 10:42:03       51 阅读
  4. C++ 模式

    2023-12-20 10:42:03       65 阅读
  5. C++ 模式

    2023-12-20 10:42:03       58 阅读
  6. C# 模式

    2023-12-20 10:42:03       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-20 10:42:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-20 10:42:03       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-20 10:42:03       87 阅读
  4. Python语言-面向对象

    2023-12-20 10:42:03       96 阅读

热门阅读

  1. FPGA实现腐蚀和膨胀算法verilog设计及仿真 加报告

    2023-12-20 10:42:03       57 阅读
  2. LINUX面试题4

    2023-12-20 10:42:03       53 阅读
  3. 173. Binary Search Tree Iterator

    2023-12-20 10:42:03       70 阅读
  4. ax650使用ax-pipeline进行推理

    2023-12-20 10:42:03       69 阅读
  5. #HarmonyOS:@ohos.promptAction (弹窗)---onProgressChange

    2023-12-20 10:42:03       53 阅读
  6. Collections.reverse对list进行反转

    2023-12-20 10:42:03       56 阅读
  7. Django忘记后台管理员密码怎么办

    2023-12-20 10:42:03       60 阅读