问题 填空题

有下列程序:
#include<iostream>
using namespace std;
class ONE

public:
virtual void f()COUt<<"1";
;
c1assTWO:public ONE

public:
TWO()cout<<"2";
;
class THREE:public TWO

public:
virtual void f()TWO∷f();cout<<"3";
;
int main()

ONE aa,*p;
TWO bb;
THREE cc;
p=&cc;
p->f();
return 0;

执行上面程序的输出结果是______。

答案

参考答案:2213

解析: 此题考查的是派生类的构造和析构函数。建立TWO的对象bb时,调用TWO的构造函数,输出“2”;THREE类又派生于TWO类,所以建立THREE类的对象cc时又会输出“2”;ONE类的对象指针p指向了THREE类的ONE类的虚函数f(),输出“1”;最后调用THREE类的f(),输出“3”。故最终的输出结果是2213。

问答题
单项选择题