当前位置:首页 » 服务器技术
开发技术指南» 文章正文
    引言: 《设计模式》中把 Singleton 写成返回指针:
 

 

 ·c++的底层机制    »显示摘要«
    摘要:c++为我们所提供的各种存取控制仅仅是在编译阶段给我们的限制,也就是说是编译器确保了你在完成任务之前的正确行为,如果你的行为不正确,那么你休想构造出任何可执行程序来。 但如果真正到了产生可执行代码阶段,无论是c,c++,还是pascal,大家都一样,你认为c和c++编译器产生的机器代码会有所不同吗,你认为c++产生的机器代码会有访问限制吗?那么你错了。什么const,private,统统没有(c......
    摘要:我们在进行程序的界面设计时,常常希望将位图的关键部分,也既是图像的前景显示在界面上,而将位图的背景隐藏起来,将位图与界面很自然的融合在一起,本实例介绍了透明位图的制作知识,并将透明位图在一个对话框中显示了出来,界面效果如图一所示:560)this.style.width=560; onmousewheel = javascript:return big(this) src="/files/uplo......


C++ 中的Singleton 类的实现(1)

«设计模式»中把 singleton 写成返回指针:

class singleton{ 【程序编程相关:传统无盘所存在的问题(4)

【推荐阅读:网吧无盘问题(2)

static singleton* instance(); 【扩展信息:传统无盘所存在的问题(3)

public:

protected:

singleton();

private:

static singleton* _instance;

};

相应的实现 cpp 文件是:

singleton* singleton::_instance;

singleton* singleton::instance(){

if( _instance == 0){

_instance = new singleton;

};

return _instance;

}

将构造函数设计成 protected 的目的是防止在 class 外面 new ,有人可能会设计成 private ,如果考虑到有可能会继承这个类的话,还是将构造函数设计成 protected 比较好,还需要加一个 virtual 析构函数.为了防止别人复制 singleton 对象:

singleton* psingleton = singleton::instance();

singleton s1 = *psingleton;

singleton s2 = *psingleton;

需要将拷贝构造(copy constructor)函数变成 private.

但是这里存在的问题是,什么时候删除 singleton 对象?按照 c++ 的一个基本原则,对象在哪里创建就在哪里销毁,这里还应该放一个 destroy 方法来删除 singleton 对象.如果忘了删除就比较麻烦.
...   下一页

    摘要:实现方法 效果示例图 560)this.style.width=560; onmousewheel = javascript:return big(this) alt="" src="/files/uploadimg/20051102/1412120.gif"> 第一步,建立一个windows application,然后在主form中放置一个button,如下图所示: 560)th......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE