码迷,mamicode.com
首页 > 其他好文 > 详细

单例模式

时间:2016-09-11 09:07:57      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:

class CSingleton
{
    static CSingleton* pInstance;
    private: 
    CSingleton()//构造函数私有化,封死外界使用new创建实例的可能
    {
    }

    public:
    static CSingleton* getInstance()//实例化本类的唯一全局入口
    {
        if(NULL == pInstance)
        {
            pInstance = new CSingleton();
        }       
        return pInstance;
    }
};

问题1: 为什么单例模式的实例要设置为静态的?
从语义上讲,类的静态成员变量是所有对象共享的,而单例模式就是为了让该类所有实例共享同一个对象。
从语法上讲,常见的单例模式都是通过一个静态方法返回其单例,而静态方法的内部不能直接使用非静态变量。
问题2:为什么getInstance要设置成静态函数?
静态方法可以在实例化之前,就通过类名调用,此函数用于构造单例,会早于实例生成而调用。

单例模式

标签:

原文地址:http://www.cnblogs.com/shijianchuzhenzhi/p/5860962.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!