#pragma once

namespace MyGame
{
    template<typename T>
    class Global
    {
    public:
        static void Create()
        {
            ASSERT(!s_instance);
            s_instance = new T;
        }

        static void Set(T* obj)
        {
            ASSERT(!s_instance);
            s_instance = obj;
        }

        static T& Get()
        {
            ASSERT(s_instance);
            return *s_instance;
        }

        static void Destroy()
        {
            ASSERT(s_instance);
            delete s_instance;
            s_instance = ;
        }
    private:
        Global();
        Global(Global&);
        Global& operator =(Global&);

        static T* s_instance;
    };

    template<typename T>
    T* Global<T>::s_instance = ;
}

最新文章

  1. java高新技术-操作javaBean
  2. PathGradientBrush类进行渐变颜色的填充
  3. Cross-Site Scripting(XSS)简介
  4. socket编程--socket模块介绍
  5. asl 和 lgpl的区别
  6. Linux (Ubuntu) 下配置VPN服务器
  7. 转:判断DATASET是否为空
  8. P2409 Y的积木
  9. NoSQL系列:选择合适的数据库
  10. Washing Clothes_01背包
  11. C语言sizeof
  12. linux源码阅读笔记 jmpi指令(转)
  13. undefined与null的区别---js
  14. c#自带压缩类实现数据库表导出到CSV压缩文件的方法
  15. STM32的GPIO
  16. 图片处理之-Bitmap.Config,jpeg压缩与大小
  17. 关于C/C++中的“auto”
  18. [java多线程] - 锁机制&amp;同步代码块&amp;信号量
  19. MongoDB数据库详解
  20. postman 简单教程-实现简单的接口测试

热门文章

  1. TCP digest
  2. multi-cursor
  3. java单元测试(使用junit)
  4. oracle db shutdown immediate&ndash;multi Instance
  5. yeoman运行grunt serve 提示错误
  6. oracle视图总结(转)
  7. JS省队集训记
  8. JQuery Ajax 在asp.net中使用小结
  9. tomcat 默认项目设置
  10. iDSDT搞定显卡和声卡 黑苹果不纠结