单体类(c++)

来源:百度知道 编辑:UC知道 时间:2024/05/15 05:32:10
类 X 只有一个对象。
编一个c++程序。

是不是设计模式里面的singleton模式?
给你一个简单的实现。

#include <iostream>

using namespace std;

class Singleton
{
public:
static Singleton* Instance();
void setValue(int val) { value = val; }
int getValue() { return value; }
protected:
Singleton() {}
private:
static Singleton *_instance;
int value;
};

Singleton* Singleton::_instance = NULL;

Singleton* Singleton::Instance()
{
if (_instance == NULL)
{
_instance = new Singleton();
}

return _instance;
}

void main()
{
Singleton *a = Singleton::Instance();
Singleton *b = Singleton::Instance();

a->setValue(10);
cout << b->getValue() << endl;
}

实现原理用静态指针变量如果指针非空就说明已经存在一个对象,则不用再创建对象。否则创建一个,因此实现了单体类。
其中静态指针变量和静态函数实现了数据的共享。

参考代码:
#include <iostream>
using namespace std;

class O