问题 单项选择题

有如下程序:#include<iostream>using namespace std;class Base{public:virtual void function1(){cout<<’0’;}void function2(){cout<<’1’;}};class Derived:public Base{public:void function1(){cout<<’2’;}void function2(){cout<<’3’;}};int main(){Base*P=new Derived();p->function1();p->function2();return 0;};运行时的输出结果是( )。

A.01

B.21

C.03

D.23

答案

参考答案:B

解析: 函数function1()在基类Base中定义为虚成员函数,而在派生类Dervied中重新进行了定义,输出字符2,函数function2()在基类Base中定义虚成员函数。在主函数中使用指向基类的指针变量p访问function2()时,输出1。

填空题
单项选择题