温馨提示×

C++单例类的正确实现方法

c++
小樊
83
2024-07-25 17:04:14
栏目: 编程语言

在C++中,单例模式可以通过以下几种方式来实现:

  1. 饿汉式单例模式:
class Singleton {
public:
    static Singleton& getInstance() {
        static Singleton instance;
        return instance;
    }

    Singleton(const Singleton&) = delete;
    Singleton& operator=(const Singleton&) = delete;

private:
    Singleton() {}
};
  1. 懒汉式单例模式:
class Singleton {
public:
    static Singleton& getInstance() {
        static Singleton instance;
        return instance;
    }

    Singleton(const Singleton&) = delete;
    Singleton& operator=(const Singleton&) = delete;

private:
    Singleton() {}
};
  1. 使用静态成员变量的单例模式:
class Singleton {
public:
    static Singleton& getInstance() {
        static Singleton instance;
        return instance;
    }

    Singleton(const Singleton&) = delete;
    Singleton& operator=(const Singleton&) = delete;

private:
    Singleton() {}
    static Singleton instance;
};

Singleton Singleton::instance;

以上是几种常见的单例模式实现方法,其中饿汉式单例模式在程序启动时即创建实例,懒汉式单例模式在第一次调用时创建实例,使用静态成员变量的单例模式也是在第一次调用时创建实例。在实现单例模式时需要注意线程安全性和资源释放等问题。

0