① 继承is-a关系,即is-a-kind-of(是一种),可以使用公有继承建立has-a,is-implement-as-a或者uses-a,但是,这样常常会导致编程方面的问题,因此坚持is-a关系。(不能建立is-like-a关系)
② 在继承关系中,基类和派生类都有的成员函数,如果使用了virtual关键字,程序将根据引用或指针指向的对象的类型来选择方法;如果没有使用virtual关键字,程序将根据引用类型或指针类型选择方法。因此,在派生类中重新定义基类的方法,通常应将基类方法声明为虚的,这样程序将根据对象类型而不是引用或指针的类型来选择方法版本。
③ 基类声明虚析构函数,这样做是为了确保释放派生类对象时,按正确的顺序调用析构函数。
④ 关键字virtual只用于类声明的方法原型中,而没有用于方法定义中。