单件模式
单件模式允许一个类有且只有一个对象。
单件模式的关键是防止程序员获得 控制对象生存期的权利。
要对类的默认的构造函数,拷贝构造函数和赋值构造函数的访问权限加以限制。
单件模式允许一个类有且只有一个对象。
单件模式的关键是防止程序员获得 控制对象生存期的权利。
要对类的默认的构造函数,拷贝构造函数和赋值构造函数的访问权限加以限制。
一个单件的示例:
singleton.h
#ifndef _SINGLETON_H_
#define _SINGLETON_H_
class singleton
{
private:
static singleton _instance;
int _i;
singleton(int i) : _i(i) {};
singleton& operator = (singleton&);
singleton(const singleton&);
public:
static singleton& instance();
int getvalue();
void setvalue(int i);
};
#endif
singleton.cpp
#include "singleton.h"
singleton singleton::_instance(0);
int singleton::getvalue()
{
return _i;
}
void singleton::setvalue(int i)
{
_i = i;
}
singleton& singleton::instance()
{
return _instance;
}
main.cpp
#include <iostream>
#include "singleton.h"
using namespace std;
void main()
{
int i = 0;
singleton &s1 = singleton::instance();
cout << s1.getvalue() << endl;
s1.setvalue(20);
cout << s1.getvalue() << endl;
cin >> i;
}