
- 复合 表示 has-a

将模板替换进来

如此我们可以说,queue里面有deque,二者是复合关系
看图来表示 黑色菱形 表示里面有东西
queue拥有c之后,就可以使用c的函数和数据
这同时也是 Adapter适配器模式的思想
- 从内存的角度理解组合

queue拥有c后 也即拥有c的全部内存空间
- 复合下的构造和析构

构造由内而外 析构由外而内
- 委托关系

String中用一个指针 指向StringRep,即为委托关系,画图就是空心菱形,表示指针
二者的生命周期不同步,StringRep只有在用到的时候 才会创建
StringRep可以由多个类共享,当一个类要改变StringRep内容的时候,系统提供一份
StringRep的副本让String改,这叫做copy on write
- 继承

继承关系,从子类往父类,画一个空心三角形,子类中的T表示模板
使用public继承,是表达 is-a ,是一种 的关系
父类的数据 完整的被子类继承
- 继承关系下的构造和析构

从内存的角度去看,继承就是子类的对象中有父类的成分
构造由内而外 析构由外而内 父类的析构函数必须为 virtual
博客介绍了程序设计中的复合、委托和继承关系。复合表示has - a,queue与deque是复合关系,构造由内而外、析构由外而内;委托如String与StringRep,用指针连接,生命周期不同步;继承用空心三角形表示,public继承表达is - a,构造和析构也是由内而外、由外而内,父类析构函数须为virtual。

105

被折叠的 条评论
为什么被折叠?



