单体类(c++)
来源:百度知道 编辑:UC知道 时间:2024/05/15 05:32:10
类 X 只有一个对象。
编一个c++程序。
编一个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