65,211
社区成员
发帖
与我相关
我的任务
分享
public class Spooler
{
static Spooler instance=null; //静态对象
public:
public static Spooler Instance
{
get
{
if (instance==null)
instance = new Spooler();
return instance;//返回静态对象给外围对象
}
}
public void release() //释放空间
{
if(instance!=null)
{
delete instance;
instance==null;
}
}
}
#include <iostream>
class Singleton
{
int m_nNew;
private:
Singleton():m_nNew(0)
{
std::cout << "singleton constructed" << ++m_nNew << "...\n";
}
public:
static Singleton * MakeSingleton()
{
static Singleton* pSingleton = NULL;
if (pSingleton != NULL)
{
return pSingleton;
}
pSingleton = new Singleton;
return pSingleton;
}
};
class Proxy
{
Singleton * m_pSingleton;
public:
Proxy():m_pSingleton(0)
{
}
Singleton * MakeSingleton()
{
m_pSingleton = Singleton::MakeSingleton();
return m_pSingleton;
}
~Proxy()
{
if (m_pSingleton != 0)
{
delete m_pSingleton;
m_pSingleton = NULL;
}
}
};
int main()
{
Proxy p;
Singleton * pSingleton1 = p.MakeSingleton();
Singleton * pSingleton2 = p.MakeSingleton();
getchar();
}