程序分析题:阅读程序后,填写程序的正确运行结果。




【正确答案】:

E::E()CALLED.
FUN()CALLED.
E::~E()CALLED.
B::~START()CALLED.


【题目解析】:

定义B类和E类,E类是B类的子类,两个类都只是输出本类名。并定义它们的虚函数。

C++允许声明虚析构函数。声明虚析构函数的一般格式如下: virtual 〜类名();

使用虚析构函数的目的是为了在对象消亡时实现多态。

总之,在构造函数和析构函数中调用虚函数时不是多态的,因为编译时即可确定调用的是哪个函数。如果本类中定义了该函数,则调用的就是本类中的函数;如果本类中没有定义相应的函数,则调用的就是直接基类中的函数;如果直接基类中还没有,则调用间接基类中定义的函数,以此类推。