自动销毁单例指针

来源:互联网 发布:数据挖掘原理与实践 编辑:程序博客网 时间:2024/06/11 05:31

网上看到好多单例的代码,但是好多写的有点问题,就是没有销毁代理。

就是利用静态变量,在程序退出时,会自动销毁,直接上代码,也可以将下面的图片另存为一个rar文件即可。


注意:记得要在源文件中初始化静态变量,否则最后也不能销毁单例指针。


1、头文件

#ifndef __CSINGLETON_H__#define __CSINGLETON_H__class CSingleton{public:~CSingleton(void);public:static CSingleton * GetInstance();private:/** *@brief私有构造函数,用于单例 */CSingleton();/**静态实例*/static CSingleton * m_pInstance_;/** @brief 它的唯一工作就是在析构函数中删除CSingleton的实例 */class CGarbo {public:~CGarbo(){if (CSingleton::m_pInstance_){delete CSingleton::m_pInstance_;}}};static CGarbo Garbo; // 定义一个静态成员,在程序结束时,系统会调用它的析构函数};#endif // __CSINGLETON_H__

2、源文件

#include "Singleton.h"/**静态变量初始化*/CSingleton * CSingleton::m_pInstance_ = NULL;CSingleton::CGarbo CSingleton::Garbo;/** @brief缺省构造函数 */CSingleton::CSingleton(void){}/** @brief缺省释构函数 */CSingleton::~CSingleton(void){}/** @brief获取配置文件管理类 */CSingleton * CSingleton::GetInstance(){if(m_pInstance_ == NULL){m_pInstance_ = new CSingleton();}return m_pInstance_;}


原创粉丝点击