定义:顾名思义,确保一个类在任何情况下都只有一个实例。
#include<iostream>
using namespace std;
class SingletonDP
{
public:
static SingletonDP* GetInstance();
private:
SingletonDP()
{
cout << "Constructor" << endl;
};//构造函数私有
static SingletonDP* pSingleInst;
};
SingletonDP* SingletonDP::pSingleInst = nullptr;
SingletonDP* SingletonDP::GetInstance()
{
cout << "Return Instance By GetInstance()" << endl;
if (!pSingleInst)
pSingleInst = new SingletonDP();
return pSingleInst;
}
int main()
{
cout << "SingletonDPTest" << endl;
SingletonDP *pTemp1 = SingletonDP::GetInstance();
SingletonDP *pTemp2 = nullptr;
if (pTemp1) pTemp2 = pTemp1->GetInstance();
cout << "pTemp1 Address: " << pTemp1 << endl;
cout << "pTemp2 Address: " << pTemp2 << endl;
system("pause");
return 0;
}