首页 > 编程语言 > 详细

C++单例模式

时间:2017-06-21 10:44:19      阅读:239      评论:0      收藏:0      [点我收藏+]

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

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++单例模式

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!