C++设计模式单件模式

以下是一个用 C++ 实现的单例模式示例代码:

 

```

#include

 

class Singleton {

private:

    static Singleton* instance;

    Singleton() {}

 

public:

    static Singleton* getInstance() {

        if (instance == nullptr) { // 懒汉式单例模式,只有在第一次使用时才创建实例

            instance = new Singleton();

        }

        return instance;

    }

 

    void doSomething() {

        std::cout << "Singleton do something" << std::endl;

    }

};

 

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

 

int main() {

    Singleton* singleton1 = Singleton::getInstance();

    Singleton* singleton2 = Singleton::getInstance();

    std::cout << "singleton1 address: " << singleton1 << std::endl;

    std::cout << "singleton2 address: " << singleton2 << std::endl;

    singleton1->doSomething();

 

    return 0;

}

```

 

在上面的示例中,我们通过设计 Singleton 类,实现了一个懒汉式单例模式。在 `getInstance()` 方法中,我们使用了静态变量 `instance` 来保存唯一的类实例,并在第一次使用该方法时创建了唯一的实例。

 

在 `main` 函数中,我们创建了两个指针变量 `singleton1` 和 `singleton2`,并分别通过 Singleton 类的静态方法 `getInstance()` 获取实例。由于我们设计的是单例模式,因此这两个指针变量实际上指向的是同一个对象。我们通过打印指针变量地址的方式来证明这一点,并通过调用 `doSomething()` 方法来验证单例模式的正确性。

你可能感兴趣的:(c++)