在C++中实现Singleton模式可以通过以下几种方式:
饿汉式单例模式:在程序启动时就创建单例对象,并且提供一个全局的访问点。class Singleton {private: static Singleton* instance; Singleton() {}public: static Singleton* getInstance() { return instance; }};Singleton* Singleton::instance = new Singleton();懒汉式单例模式:在第一次访问时才创建单例对象。class Singleton {private: static Singleton* instance; Singleton() {}public: static Singleton* getInstance() { if (instance == nullptr) { instance = new Singleton(); } return instance; }};Singleton* Singleton::instance = nullptr;双重检查锁定单例模式:在第一次访问时才创建单例对象,并且使用双重检查锁定机制确保线程安全。#include <mutex>class Singleton {private: static Singleton* instance; static std::mutex mtx; Singleton() {}public: static Singleton* getInstance() { if (instance == nullptr) { std::lock_guard<std::mutex> lock(mtx); if (instance == nullptr) { instance = new Singleton(); } } return instance; }};Singleton* Singleton::instance = nullptr;std::mutex Singleton::mtx;这些是常见的实现Singleton模式的方式,选择其中一种方式根据具体需求和线程安全性要求进行选择。