摘要: oop都是以显示接口和运行期多态解决问题; Template和泛型编程以隐式接口和编译期多态解决问题。 classes和template都支持接口和多态。 对于classes而言接口是显式的,以函数签名为中心;多态是通过virtual函数发生在运行期。 对于template而言接口是隐式的,取决于有 阅读全文
posted @ 2016-07-28 20:52 秋水小战士 阅读(269) 评论(0) 推荐(0) 编辑
摘要: private继承并不如public继承一样具有is-a的关系。 private继承时,编译器不会自动将一个derived class自动转换为一个base class对象; 由private继承而来的所有成员,在derived class中都会变成private属性,即使他们之前是protecte 阅读全文
posted @ 2016-07-28 16:36 秋水小战士 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 和“public继承”带有is-a的意义类似,复合意味着has-a或is-implemented-in-term-of。 has-a属于应用域部分:程序中的对象其实相当于你所塑造的世界中的某些事物,例如人、汽车、一张张视频画面等等。 is-implemented-in-term-of属于实现域:是实 阅读全文
posted @ 2016-07-28 13:35 秋水小战士 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 详情见《Effective C++》item35 1.使用non-virtual interface(NVI)手法,这是Template Method设计模式的一种特殊形式。 它以public non-virtual成员函数包裹较低访问性(private 或 protected)的virtual函数 阅读全文
posted @ 2016-07-28 10:55 秋水小战士 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 1。abstract class 拥有pure virtual函数的class是abstract class. 不能创建abstract class的实体。 2.pure virtual 函数 他们必须被任何“继承了它们”的具象class重新声明,而且它们在抽象class中通常没有定义。(所有的de 阅读全文
posted @ 2016-07-28 09:27 秋水小战士 阅读(435) 评论(0) 推荐(0) 编辑
摘要: 1。public继承——using 声明式 2。private继承——转交函数 阅读全文
posted @ 2016-07-28 08:31 秋水小战士 阅读(141) 评论(0) 推荐(0) 编辑