c++ 单例对象的释放

来源:互联网 发布:linux监控软件对比 编辑:程序博客网 时间:2024/04/28 13:56
class ark_StageDataTable
{
public:
    static ark_StageDataTable* instance();

    virtual ~ark_StageDataTable();

};


class ark_releaseDataTable
{
public:
    virtual ~ark_releaseDataTable();
};


static ark_releaseDataTable s;
static ark_StageDataTable *_instans_stageDataTable = NULL;

ark_releaseDataTable::~ark_releaseDataTable()
{
    if(_instans_stageDataTable)
    {
        delete _instans_stageDataTable;
    }
}
ark_StageDataTable::ark_StageDataTable()
{

}
ark_StageDataTable::~ark_StageDataTable()
{
}
ark_StageDataTable* ark_StageDataTable::instance()
{
    if(!_instans_stageDataTable)
    {
        _instans_stageDataTable = new ark_StageDataTable();
        _instans_stageDataTable->_ark_DecodeCSV();
        //_instans_stageDataTable->_ark_DecodeWelcome();
        return _instans_stageDataTable;
    }
    return _instans_stageDataTable;
}


当程序退出时,ark_releaseDataTable类的s对象析构会调用其析构函数,从而把单例给释放了


0 0