Chinaunix首页 | 论坛 | 博客
  • 博客访问: 973602
  • 博文数量: 58
  • 博客积分: 10192
  • 博客等级: 上将
  • 技术积分: 1845
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-22 21:24
文章分类

全部博文(58)

文章存档

2011年(11)

2010年(12)

2009年(20)

2008年(15)

分类: C/C++

2009-06-29 23:53:50

条款35:确定你的public inheritance,模塑出"isa"的关系
1.如果class Derived以public的形式继承class Base,那就等于告诉编译器每一个class Derived类型的对象同时也是一个class Base的对象,反之并不成立。
两个经典案列:
a.令企鹅Penguin继承鸟类Bird
b.令正方形Square继承长方形Rectangle
 
条款36:区分接口继承(interface inheritance)和实现继承(implementation inheritance)
1.声明一个纯虚函数的目的是为了让derived classes只继承其接口。纯虚函数也可以提供实现。
2.声明一般(非纯)虚拟函数的目的,是为了让derived classes继承该函数的接口和缺省行为。Derived类继承函数接口提供适合自身类的函数定义,要么使用缺省行为,即Base提供的函数定义。
3.声明非虚拟函数的目的是为了令derived classes继承函数的接口及其实现。Derived类使用Base类提供的函数接口和实现,自身不会去继承和实现。
阅读(1002) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~