zoukankan      html  css  js  c++  java
  • [设计模式][C++]单例模式

    参考:http://blog.csdn.net/hackbuteer1/article/details/7460019

    单例模式意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作系统只能有一个窗口管理器,一台PC连一个键盘。

      单例模式通过类本身来管理其唯一实例,这种特性提供了解决问题的方法。唯一的实例是类的一个普通对象,但设计这个类时,让它只能创建一个实例并提供对此实例的全局访问。唯一实例类Singleton在静态成员函数中隐藏创建实例的操作。习惯上把这个成员函数叫做Instance(),它的返回值是唯一实例的指针。

    class CSingleton
    {
    private:
        CSingleton()   //构造函数是私有的
        {
        }
        static CSingleton *m_pInstance;
    public:
        static CSingleton * GetInstance()
        {
            if(m_pInstance == NULL)  //判断是否第一次调用
                m_pInstance = new CSingleton();
            return m_pInstance;
        }
    };

    注意:

    我在VS中,因为目前不知道的原因使用时

    必须在 cpp文件中再次声明:

    CSingleton * CSingleton::m_pInstance = NULL;

    静态声明后必须初始化
  • 相关阅读:
    Codechef MSTONES Milestones
    Gym101620C Cumulative Code
    bootstrap组件-导出数据
    安装pip工具
    权限管理系统---django版本
    tornado 路由、模板语言、session
    django 连接mysql
    django 表结构
    ajax和原生ajax、文件的上传
    django的cookie和session
  • 原文地址:https://www.cnblogs.com/lyggqm/p/4546372.html
Copyright © 2011-2022 走看看