class Person {...};
class Student: public Person {...};
我们从日常的经验知道每一个学生都是一个人,但并不是每一个人都是一个学生。这就是由这个继承体系严格确定的意义。
public inheritance 和 is-a 等价听起来简单,但有时你的直觉会误导你。
class Rectangle {...};
class Square: public Rectangle {...};
基本的难点在于一些适用于矩形(它的宽度可以独立于他的高度而自行变化)的事情不适用于正方形(它的宽度和高度必须相等)。但是 public inheritance 断言,适用于 base class objects(基类对象)的每一件事——每一件事!也适用于 derived class objects(派生类对象)。