72 题目:设计一个类,我们只能生成该类的一个实例
2014-10-16 22:23
183 查看
72. 题目:设计一个类,我们只能生成该类的一个实例。
分析:只能生成一个实例的类是实现了Singleton 模式的类型。
分析:只能生成一个实例的类是实现了Singleton 模式的类型。
/* 72. 题目:设计一个类,我们只能生成该类的一个实例。 分析:只能生成一个实例的类是实现了Singleton 模式的类型。 1.为了防止从类的外部调用构造函数,产生类的新的实例,我们应该把该类的构造函数声明成protected或者private。 2.生成一个类的实例,我们可以考虑用静态成员函数来记录, 指向这个实例的指针声明成静态变量,存放在静态存储区,把这个类的实例用new来构造,并放在堆里。 */ class Singleton { private: static Singleton* instance; Singleton(); Singleton(const Singleton&); public: static Singleton* GetInstance() { if(instance==NULL)//如果之前没有构造过,那么就构造一个新的实例。 //如果构造过,那么就把之前构造的那个实例返回。 instance=new Singleton(); return instance; } }; Singleton* Singleton::instance=NULL; //看了别人的多线程 //如果要加入多线程的考虑。 //加入互斥量Mutex。加锁lock()。开锁unlock(); Mutex mu; class Singleton { private: static Singleton* instance; Singleton(); Singleton(const Singleton&); public: static Singleton* GetInstance() { if(instance==NULL) { lock(mu); if(instance==NULL) instance=new Singleton(); unlock(mu); } return instance; } }; Singleton* Singleton::instance=NULL;
相关文章推荐
- 剑指officer第二题:题目:设计一个类,我们只能生成该类的一个实例(五种方法实现)
- 题目2:Singelton单例模式:设计一个类,只能生成该类的一个实例。
- 设计一个类,我们只能生成该类的一个实例
- 第七十二题(设计一个类,我们只能生成该类的一个实例)
- 面试题2 设计一个类,我们只能生成该类的一个实例
- 设计一个类,我们只能生成该类的一个实例。
- 设计一个类,我们只能生成该类的一个实例。
- 设计一个类只能生成该类的一个实例
- 设计一个类,只能生成该类的一个实例
- 设计一个类,该类不能被继承,且只能实例化3次
- 设计一个类,只能实现1个实例或3个实例
- 单态设计模式--一个类只能创建一个实例(对象)
- java思考题:设计一个只能创建一个唯一实例的类。
- 只能生成一个对象的类(经典设计模式之一)
- 设计一个类,该类不能被继承,且只能实例化3次
- 设计一个只能创建一个唯一实例的类——单例模式
- C++ 设计一个类,只能生成一个对象
- 剑指OFFER(java)-设计一个只能创建一个唯一实例的类——单例模式
- 让你的程序只能运行一个实例
- 只能产生一个实例