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;

    静态声明后必须初始化
  • 相关阅读:
    68
    56
    Django manager 命令笔记
    Django 执行 manage 命令方式
    Django 连接 Mysql (8.0.16) 失败
    Python django 安装 mysqlclient 失败
    H.264 SODB RBSP EBSP的区别
    FFmpeg—— Bitstream Filters 作用
    MySQL 远程连接问题 (Windows Server)
    MySQL 笔记
  • 原文地址:https://www.cnblogs.com/lyggqm/p/4546372.html
Copyright © 2011-2022 走看看