有些对象我们只需要一个, 例如线程池, 缓存等, 这些对象只能有一个实例, 如果有多个实例, 就会有许多问题产生
由是引出单例模式, 确保一个类只有一个实例, 并提供一个全局访问点.
#include
#include
using namespace std;
class Single
{
public:
Single (const Single &) = delete;
Single &operator=(const Single&) = delete;
static shared_ptr
get_instance ()
{
if (unique == nullptr)
unique = make_shared
();
return unique;
}
private:
Single () = default;
static shared_ptr
unique; }; shared_ptr
Single::unique = nullptr; int main () { ios::sync_with_stdio (false); auto single_class = Single::get_instance (); return 0; }