三、虚函数(virtual) A.非虚函数,调用的函数是由用于调用函数的句柄(指针或引用)类型决定,而不是由句柄所指向的对象的类型决定。 B.虚函数,调用哪个类的虚函数就是由句柄所指向的对象的类型所决定,而非句柄的类型。

四、虚函数实现机制 A.数据结构,virtual函数表,含有虚函数的类,编译器编译时都会为这个类创建一个virtual函数表,每次调用该类的virtual函数时,运行程序都会根据virtual函数表选择正确的函数实现。 B.实现机制,三级指针:virtual函数表中指向函数具体实现的指针;含virtual函数的类的对象指向该类的virtual函数表的指针;用于调用virtual函数的对象句柄。

五、虚函数与析构函数 基类的析构函数一般都是虚函数,这样做是为了当用一个基类的指针删除一个派生类的对象时,派生类的析构函数会被调用,防止在析构时只析构基类而不析构派生类的状况发生。