菜鸟问题:如何手动撤消单例模式中的内存空间!避免Singleton理论中的内存泄漏? (参与有分)
大家都知道,在VC中单例设计模式的生存空间与进程的生存空间是一样的,所以以进程结束来负责撤消单例模式的空间,但是进程会认为单例模式存在内存泄漏问题!
所以说我现在想使用STL的Functor来手动释放内存空间,但发现一样会出现内存违规访问,大家来帮忙看看怎样写这段代码才能释放掉单例的内存空间?
class ReleaseSingleton;
class CPSMirrorSocket
{
friend ReleaseSingleton;
public:
static CPSMirrorSocket* GetInstance();
private:
CPSMirrorSocket* instance;
}
class ReleaseSingleton
{
public:
operator ()()
{
CPSMirrorSocket* socket = CPSMirrorSocket::GetInstance();
delete socket->instance; //存在违规访问错误
socket->instance = NULL;
}
};
所以说我现在想使用STL的Functor来手动释放内存空间,但发现一样会出现内存违规访问,大家来帮忙看看怎样写这段代码才能释放掉单例的内存空间?
class ReleaseSingleton;
class CPSMirrorSocket
{
friend ReleaseSingleton;
public:
static CPSMirrorSocket* GetInstance();
private:
CPSMirrorSocket* instance;
}
class ReleaseSingleton
{
public:
operator ()()
{
CPSMirrorSocket* socket = CPSMirrorSocket::GetInstance();
delete socket->instance; //存在违规访问错误
socket->instance = NULL;
}
};
...全文
相关推荐
菜鸟学习java设计模式之单例模式
主要为大家详细介绍了java设计模式之单例模式的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
举例讲解C#编程中对设计模式中的单例模式的运用
主要介绍了C#编程中对设计模式中的单例模式的运用,单例模式在.NET框架的相关开发中也被经常用到,需要的朋友可以参考下
Java设计模式菜鸟系列教程
博客原地址:http://blog.csdn.net/lhy_ycu/article/details/40031567
23种设计模式知识要点.pdf
详细介绍了java的23种设计模式,并且对设计模式进行了简明扼要的介绍,并且每种设计模式带着一个小例子
C#常用设计模式[收集].pdf
C#常用设计模式[收集].pdf


