2011年8月1日
摘要: 设计模式中最简单的,用的也很广泛的,恐怕就是单粒模式。下面是单粒模式的几个思考:1)如果是懒初始化,内存在哪释放? 1.1 外部删除 1.2 开发接口,安全删除 1.3 额为增加一个静态类成员,在系统退出的时候,会调用成员的析构函数,然后在析构函数里面释放内存。2)它与静态方法的区别: 1.1 静态方法不需要一个实例,它访问的成员变量都是静态的。 1.2 单粒模式可以被继承,可以实现多态,可以延迟初始化。 阅读全文
posted @ 2011-08-01 23:02 漫步沙洲中 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 函数指针中需要注意如下几点:1)函数运算符(),数组运算符[]优先级高于指针运算符*。所以int *fn(); 表示 一个返回值为int *的函数int (*fn)() 表示返回值为int的函数指针。2)类成员函数函数指针表示方法:void (A::*fn)();即用ClassName::*来代替*其他的和普通的函数指针一样。 阅读全文
posted @ 2011-08-01 22:52 漫步沙洲中 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 我们定义了一个类,里面有很多方法,我们调用的其中某个方法,如何确定调用了哪些方法呢?首先,我们知道函数查找的顺序如下:1)查找函数的名字2)从中找出最佳匹配。3)检查是否具有该函数的访问权限4)实参相依原则:根据实参的类型,自动进入相应的命名空间、类内部进行查找。增加一条:派生类成员按名字隐藏掉基类成员class Base {public: virtual void f(int x);};class Derived: public Base {public: virtual void f(double *pd);};Derived *pd = new Derived;pd->f(10); 阅读全文
posted @ 2011-08-01 22:41 漫步沙洲中 阅读(831) 评论(0) 推荐(0) 编辑