当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: c++ 中的singleton 类的实现讨论 ANSI C++ 中的 Singleton 实现说难不难,说容易也不容易,很多人写 ANSI C++ 的 Singleton class 都有错误。
 

 

 ·我为什么要学习hibernate?    »显示摘要«
    摘要:  在我做过的很多项目的过程中,我一直有一个悬而未决的问题在困扰我,那就是持久层的开发。持久层的开发一般来说要么用cmp,要么用jdbc+dao。 cmp就不用说了,它对我来说是一种失败的实践,而jdbc+dao也存在很多的困难,我很难做到把关系表记录完整的映射到持久对象的关系上来,这主要体现在多表的关系无法直接映射到对持久对象的映射上来,可能是一个表映射多个持久对象,有可能是多个表映射一个持久对......
 ·程序员的四个境界    »显示摘要«
    摘要:程序员的四个境界 国学大师王国维先生认为古今成大事业、大学问者,必经过三种境界,第一种境界:"昨夜西风凋碧树。独上高楼,望尽天涯路";第二种境界:"衣带渐宽终不悔,为伊消得人憔悴",第三种境界:"众里寻他千百度,蓦然回首,那人却在灯火阑珊处"。一代宗师真是体察入微,寥寥数语,道尽了求道者的心路历程,将一个人由浅尝、迷茫到彻悟的过程尽数概括......


C++ 中的singleton 类的实现讨论

c++ 中的singleton 类的实现讨论

     【程序编程相关:MySQL管理员指南

【推荐阅读:一个计算机高手的成长——推荐一读

ansi c++ 中的 singleton 实现说难不难,说容易也不容易,很多人写 ansi c++ 的 singleton class 都有错误.这篇文章讨论怎样在 ansi c++ 中写 singleton class, 希望对大家有帮助. 【扩展信息:MySql常用命令

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

 class singleton{

public:

    static singleton* instance();

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++ 的一个基本原则,对象在哪里创建就在哪里销毁,


...   下一页
 ·delphi中使用动态sql的几个问题    »显示摘要«
    摘要:delphi支持参数化sql语句,不过俺很少用paramters/params属性,一般都是自己构造sql,用sql.text:=´select * from ..where id=´´´+edit1.text+´´´´;不过这种方法要小心sql注入攻击哦。今天改用adoquery控件的paramter......
» 本期热门文章:

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