1.派生类虚函数调用基类版本时,必须显式使用作用域操作符。如果派生类忽略了这样做,则函数调用会在运行时确定并且将是一个自身调用,从而导致 无穷递归。
2.子类若没定义某方法而父类定义了,则果断调用父类的方法;
3.虚函数是运行时动态绑定调用的方法。
4.基类子类的this指针相同(也即父类和子类共同占用父类的内存),父类中任何成员函数体内直接调用的函数(除虚函数外),绝不可能是子类的。
5.多态性:指相同对象收到不同消息或不同对象收到相同消息时产生不同的实现动作,即:一种接口,多种方法。
C++支持两种多态性:编译时多态性,运行时多态性。
a.编译时多态性:通过函数重载和运算符重载来实现的。
b.运行时多态性:通过继承和虚函数来实现的。
6.重载是在编译期就已经决定的调用,根据对象类型。多态是在运行期决定。
7.vptr指针存放在何处呢?其实这个指针就放在他们各自的实例对象里。