单件
来源:互联网 发布:智诚轮胎软件 编辑:程序博客网 时间:2024/06/10 01:08
#include<iostream>using namespace std;class Singleton{static Singleton s;int i;Singleton( int x):i(x) { }Singleton& operator=(Singleton&); Singleton(const Singleton&);public:static Singleton& instance() { return s; }int getValue(){ return i;}void setValue(int x){ i=x; }}; Singleton Singleton::s(50);int main(){Singleton& s=Singleton::instance();cout<<s.getValue()<<endl;Singleton& s2=Singleton::instance();s2.setValue(9);cout<<s.getValue()<<endl;}#include<iostream>using namespace std;class Singleton{int i;Singleton(int x):i(x){ }void operator=(Singleton&);Singleton(const Singleton&);public:static Singleton& instance(){static Singleton s(47);return s;}int getValue(){ return i;}void setValue(int x) { i=x;}}; int main(){Singleton& s=Singleton::instance();cout<<s.getValue()<<endl;Singleton& s2=Singleton::instance();s2.setValue(9);cout<<s.getValue()<<endl; }//如果两个单件彼此依赖,就会产生一个特别有趣的情况 class Singleton1{Singleton1(){}public:static Singleton1& ref(){static Singleton1 single;return single;}};class Singleton2{Singleton1& s1;Singleton2(Singleton1& s):s1(s){}public:static Singleton2& ref(){static Singleton2 single(Singleton1::ref());return single;}Singleton1& f(){return s1;}};int main(){Singleton1& s1=Singleton2::ref().f();}#include<iostream>using namespace std;template<class T> class Singleton{Singleton(const Singleton&);Singleton& operator=(const Singleton&);protected:Singleton(){}virtual ~Singleton(){}public:static T& instance(){static T theInstance;return theInstance;}}; class MyClass:public Singleton<MyClass>{int x;protected:friend class Singleton<MyClass>;MyClass() { x=0;}public:void setValue(int n) { x=n;}int getValue() const { return x;}};int main(){MyClass& m=MyClass::instance();cout<<m.getValue()<<endl;m.setValue(1);cout<<m.getValue()<<endl;
return 0;
}
0 0
- 单件
- 单件
- 单件
- 单件模式
- 回头看singleton(单件)
- 单件Singleton
- 单件模式
- 单件Singleton
- 设计模式-单件
- singleton单件模式
- Singleton (单件模式)
- C#实现单件
- 单件模式(Singleton)
- 一番话:单件模式
- 单件模式
- 单件模式
- 单件模式
- 单件模式
- ios常用的几个动画代码
- 1.使用scrapy爬取数据之如何安装
- 【Python 学习手册笔记】如何运行程序
- ios多线程
- InnoDB Insert(插入)操作(上)--mysql技术内幕
- 单件
- CSS分页按钮样式代码-www.codesc.net
- vs2010下qt的intellisense
- UVA 401 Palindromes
- 为了省钱开始学习python(1)
- 7.6 NOI模拟总结
- iOS中定时器NSTimer的一些用法总结
- ExtJs Alert
- 用JUnit4进行单元测试代码编写