1.简介:
是设计模式的一种,是为了保证某个类只能有一个实例化对象。
//设计模式不依赖于语言,是一种编程思想
2.实现思路:
1.私有:构造函数私有化,类外无法直接实例化对象
2.静态成员指针变量
3.静态成员函数,返回2中指针变量
3.代码实现
#include <iostream>
using namespace std;
class Single{
private:
int value;
Single(){}
Single(int v):value(v){}
static Single *example;
public:
static Single *get_example(){
if(NULL == example){//保证每次返回的实例化化对象都是同一个
example = new Single();
}
return example;
}
void set_value(int v){
value = v;
}
int get_value(){
return value;
}
//销毁实例
static void distroy_example(){
if(NULL != example){
delete example;
example = NULL;
}
}
};
Single *Single::example = NULL;
int main(int argc, const char *argv[])
{
Single *s1 = Single::get_example();
s1->set_value(520);
cout<<s1->get_value()<<endl;//520
Single *s2 = Single::get_example();
cout<<s2->get_value()<<endl;//520 通过get_example函数返回的实例永远是同一个
Single::distroy_example();
return 0;
}