您的位置:首页 > 编程语言 > C语言/C++

C++单例模式

2015-09-07 16:24 225 查看
#include <iostream>

using namespace std;

class CSingleton
{
private:
CSingleton()   //构造函数是私有的
{
cout<<"调用构造器\n";
}
static CSingleton *m_pInstance;//声明
public:
static CSingleton *GetInstance()
{
if(m_pInstance == nullptr)  //判断是否第一次调用
{
m_pInstance = new CSingleton();//调用构造器
cout<<"第一次调用\n";
}
else
cout<<"没有创建新的实例\n";
return m_pInstance;
}
};

CSingleton *CSingleton::m_pInstance = nullptr;//类中声明的静态数据,需要在类外面再定义一次

int main()
{
CSingleton* p1 = CSingleton::GetInstance();
CSingleton* p2 = p1->GetInstance();
delete p1;
delete p2;
return 0;
}


程序的输出为:

调用构造器

第一次调用

没有创建新的实例
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: