单例模式是面试经常会提及的题目
那么什么是单例模式?怎么实现单例模式?
以上问题是本节的核心
首先,单例模式是指一个类只能定义一个对象,或者说一个类只能拥有一个对象。
其次,怎么实现单例模式,通过将构造函数声明为private,利用static 参数的特性作为标识进行判断。
如下代码:
#include<iostream>
using namespace std;
class CSingleton
{
private:
CSingleton()
{
}
static CSingleton *m_pInstance;
public:
static CSingleton * GetInstance()
{
if (m_pInstance == NULL) //判断是否第一次调用
m_pInstance = new CSingleton();
return m_pInstance;
}
void print()
{
cout << "single";
}
};
int main()
{
CSingleton *s = CSingleton::GetInstance();
s->print();
return 0;
}