饿汉式单例模式与懒汉式单例模式差别不大,只需要修改很少的代码,改动的代码已标注:
#include <iostream>
using namespace std;
class Singleton
{
private:
Singleton()
{
m_singler = NULL;
m_count = 0;
cout << "构造函数 Singlton...do" << endl;
}
public:
static Singleton *getInstance() //此函数修改
{
return m_singler;
}
static void printT()
{
cout << "m_count:" << m_count << endl;
}
private:
static Singleton *m_singler;
static int m_count;
};
int Singleton::m_count = 0;
Singleton *Singleton::m_siger = new Singleton;//此处修改
void main()
{
cout << "饿汉式" << endl;
Singleton *p1 = Singleton::getInstance();
Singleton *p2 = Singleton::getInstance();
if(p1 != p2)
{
cout << "不是同一个对象" << endl;
}
else
{
cout << "是同一个对象" << endl;
}
p1->printT();
p2->printT();
return;
}