溫馨提示×

C++單例類的正確實現方法

c++
小樊
87
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
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女