码迷,mamicode.com
首页 > 编程语言 > 详细

C++单例模式

时间:2017-06-21 11:28:35      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:span   单例模式   模式   指针   思想   null   cout   code   问题:   

以前在项目中使用单例模式时,喜欢使用静态指针实现,但是需要在程序结束时释放指针的内容,不然会造成内存泄漏,代码如下:

Log& Log::instance()
{
    if(NULL == ms_log)
    {
        static Log ms_log = new Log("./log.txt");
        if(!ms_log->m_logout.good())
        {
            std::cout << "log file \"./log.txt\"" << std::endl;
        }
    }
    return *ms_log;
}

今天发现可以使用静态对象来避免这个问题:

Log& Log::instance()
{
    static Log slog("./log.txt");
    if(!slog.m_logout.good())
    {
        std::cout << "log file \"./log.txt\"" << std::endl;
    }
    return slog;
}

一切伟大的思想和行动都有一个微不足道的开始。

C++单例模式

标签:span   单例模式   模式   指针   思想   null   cout   code   问题:   

原文地址:http://www.cnblogs.com/zhanghang-BadCoder/p/7057993.html

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