继承(上):
1. 提高了代码的重用性
2. 让类与类之间产生关系,有了这个关系,才有多态性
注意:千万不要为了获取其他功能,简化代码而继承:
必须是类与类之间有所属关系才可以继承,所属关系 is a。
在java语言中只能是单继承,不支持多继承。
...
分类:
其他好文 时间:
2014-05-15 15:15:12
阅读次数:
259
最近在看《深度探索C++对象模型》这本书的时候,里面第一章提到了虚拟继承,有这么一句话说:“在虚拟继承的情况下,base
class不管在继承串链中被派生多少次,永远只会存在一个实体。”一开始我理解错了,以为这个继承类图体系里面全局只有一个base
class对象,后来查了些资料才知道意思是一个子....
分类:
编程语言 时间:
2014-05-14 12:22:34
阅读次数:
379
解决的问题是:我有一个类A,里面可能需要很多不同行为的功能。
现在有三种解决方法,第一种:每个功能都弄成一个类,然后继承类A,这种的问题是,如果功能很多,会造成类爆炸。
第二种:我将功能类组合上类A上,这种想法是好的,但还没够弹性,因为这样我没法在不修改类A的情况下对功能的动态添删。(我的目的就是在不修改类A的情况下,对类A进行功能扩展)
第三种:就是我要说的装饰者模...
分类:
其他好文 时间:
2014-05-11 21:26:18
阅读次数:
340
实现 : Defferent Heros attack Defferently. - 不同的英雄使用不用的招数
Strategy设计的思路:
基类A,更加小的基类B,新的继承类C:
1 从基类A中抽出一个更加小的基类B
2 利用这个更加小的基类B实现不同的效果
3 把这个更加小的基类B包含进基类A中去
4 新的继承类C只需要和基类A打交道,设计不同行为,不需要理会更加小的基类B...
分类:
其他好文 时间:
2014-05-11 18:45:45
阅读次数:
297
测试结果是private和public两种情况是不同的。...
分类:
其他好文 时间:
2014-05-07 06:20:37
阅读次数:
218
C++ Primer Plus学习笔记之继承类的初始化顺序
基类的构造函数,析构函数和操作符函数operator=是不能被派生类继承的;
那么,当创建一个派生类对象时,怎样调用基类的构造函数对基类的数据进行初始化呢???
答案是:构造函数执行时遵行先兄长(基类),再客人(对象成员),后自己(派生类)的顺序;
另一方面,执行析构函数时,先执行派生类的析构函数,再执行基类的析构函数。原因是,对...
分类:
编程语言 时间:
2014-05-04 09:41:27
阅读次数:
373
代理模式的本质:控制对象访问
既然本质是控制对象访问,意思就是在访问者与原始对象之间加一个代理即可
同理,代理模式也可以通过继承原始类来实现,让访问者操作继承类,继承类来控制原始对象的访问
从而实现控制对象访问的目的
何时选用代理模式
1.需要为一个对象在不同的地址空间提供局部(重点)代表的时候,可以使用远程代理
2.需要按照需要创建开销很大的对象的时候,可以使用虚代理(即一个不完整的对象)
3.需要控制对原始对象的访问的时候,可以使用保护代理,上边即保护代理实例
4.需要在访问对象执行一些附加操作的时候,...
分类:
其他好文 时间:
2014-04-28 10:27:41
阅读次数:
253
//: ORDER.CPP -- Order of constructor calls // with
inheritance#include #define inherit(derived, base) \class derived : public base
{ \public: \ deri....
分类:
其他好文 时间:
2014-04-28 00:09:24
阅读次数:
444