c++11 单例模式

Singleton.h

#pragma once
class Singleton
{
public:
	static Singleton* instance();
	~Singleton();
private:
	Singleton();
	static Singleton* instance_;
};

Singleton.cpp

#include <mutex>
#include "Singleton.h"

Singleton* Singleton::instance_ = nullptr;
Singleton::Singleton()
{
}

Singleton::~Singleton()
{
}
Singleton* Singleton::instance()
{
	static std::once_flag once_flag;
	std::call_once(once_flag, []()
		{
			instance_ = new Singleton();
		});
	return instance_;
}

版权声明:本文为yeyuluo原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。