#pragma once

template <typename T>
class Singleton
{
public:
    static T *GetInstance()
    {
        if (NULL == s_ins)
        {
            s_ins = new (T)();
            atexit(Destory);
        }

        return s_ins;
    }

private:
    static void Destory()
    {
        delete s_ins;
        s_ins = NULL;
    }

    Singleton(){}

    ~Singleton(){}

private:
    static T* volatile s_ins;
};

template <typename T>
T* volatile Singleton<T>::s_ins = NULL;

用法:

Singleton<TestClass>::GetInstance()->Func()

相关文章:

  • 2021-11-09
  • 2022-12-23
  • 2021-06-03
  • 2021-05-18
  • 2022-12-23
  • 2021-11-24
  • 2021-09-27
猜你喜欢
  • 2021-11-20
  • 2022-12-23
  • 2022-12-23
  • 2021-12-11
  • 2022-12-23
  • 2022-12-23
  • 2021-08-04
相关资源
相似解决方案