有如下程序: #include<iostream> using namespace std; class ONE { public:virtual void f(){cout<<"1";} }; class TWO:public ONE { public:TWO(){cout<<"2";} }; class THREE:public TWO { public:vurtual void f() {TOW::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。