最推荐的懒汉式单例(magic static)——局部静态变量
#include <iostream>class Singleton{public:~Singleton(){std::cout<<"destructor called!"<<std::endl;}Singleton(const Singleton&)=delete;Singleton& operator=(const Singleton&)=delete;static Singleton& get_instance(){static Singleton instance;return instance;}private:Singleton(){std::cout<<"constructor called!"<<std::endl;}};int main(int argc, char *argv[]){Singleton& instance_1 = Singleton::get_instance();Singleton& instance_2 = Singleton::get_instance();return 0;}
运行结果:
constructor called!destructor called!
这是最推荐的一种单例实现方式:
