参考C++设计模式这本书,写了一个示例,如下:
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
/* 单例 */
class Singleton
{
private:
static Singleton* m_pInstance;
int m_data;
protected:
Singleton():m_data(0)
{
cout << "Singleton mode" << endl;
}
public:
static Singleton* getInstance()
{
if(m_pInstance == NULL)
{
m_pInstance = new Singleton();
}
return m_pInstance;
}
void setData(int d)
{
m_data = d;
}
int getData()
{
return m_data;
}
};
Singleton* Singleton::m_pInstance = NULL;
int main(void)
{
Singleton* p = Singleton::getInstance();
p->setData(10);
cout << "data = " << p->getData() << endl;
Singleton* p1 = Singleton::getInstance(); // p1 = p
cout << "data = " << p1->getData() << endl;
return 0;
}