如何保证一个类只可实例化一次?

daydayup234 2006-07-28 03:32:15
不要实例化多次
...全文
488 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jixingzhong 2006-07-28
  • 打赏
  • 举报
回复
实现要点 :

Singleton模式是限制而不是改进类的创建。
Singleton类中的实例构造器可以设置为Protected以允许子类派生。
Singleton模式一般不要支持Icloneable接口,因为这可能导致多个对象实例,与Singleton模式的初衷违背。
Singleton模式一般不要支持序列化,这也有可能导致多个对象实例,这也与Singleton模式的初衷违背。
Singleton只考虑了对象创建的管理,没有考虑到销毁的管理,就支持垃圾回收的平台和对象的开销来讲,我们一般没必要对其销毁进行特殊的管理。
理解和扩展Singleton模式的核心是“如何控制用户使用new对一个类的构造器的任意调用”。
jixingzhong 2006-07-28
  • 打赏
  • 举报
回复
单件模式(Singleton Pattern)

http://www.vczx.com/article/show.php?id=1563

解说之后给出了实例,
楼主看看其思想吧。
daydayup234 2006-07-28
  • 打赏
  • 举报
回复
我也感觉要静态数据成员
忘记怎么用了

jixingzhong 2006-07-28
  • 打赏
  • 举报
回复
单件模式,

构造函数的私有化 ...

楼主看看设计模式目录的 23种设计模式中的 单件模式 !
beepbug 2006-07-28
  • 打赏
  • 举报
回复
在这个类里声明一个静态数据成员。初置为0。实例化前,判断其是否为0。若不为0,about。否则,创建对象,并使该成员递增1。
---------------------------------------
我的BLOG:http://blog.csdn.net/beepbug/
cunsh 2006-07-28
  • 打赏
  • 举报
回复
例如:
class Singleton {
public:
static Singleton& Instance() {
static Singleton obj;
return obj;
}
private:
Singleton();
Singleton( const Singleton&);
~Singleton();
};
cunsh 2006-07-28
  • 打赏
  • 举报
回复
<<设计模式>>的单件模式

64,642

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧