消息关闭
    暂无新消息!

关于c++单例的问题

问题作者 : 卡巴2017-06-05发布
class CControlSystem  
{  
private:  
    CControlSystem()  
    {  
    }  
    CControlSystem(const CControlSystem &){};  
    CControlSystem & operator = (const CControlSystem &){};  
public:  
    static CControlSystem & Instance()  
    {  
        static CControlSystem instance;     
        return instance;  
    }  
}; 
求问:
1、这个单例的实现中静态对象instance的创建时间是在什么时候呢?
2、这个实现与
static CControlSystem instance;
static CControlSystem & Instance()  
    {       
        return instance;  
    }  
区别在哪?

3个回答

︿ 3
那这种方法是不是和懒汉式的单例更像?同时也会有线程不安全的问题?
︿ 2
1、static CControlSystem instance;     //第一次调用Instance()的时候,初始化了instance(调用了无参构造函数);以后再调用到Instance()时,也不会初始化这个对象了………………详见局部static 变量
2、区别:第二种实现不管有没有调用Instance()都会初始化instance。