填空题 有如下程序: #inClude<iostream> using namespace std; class AA { public: viltual void f() { cout<<"AA"; } }; class BB:public AA { public: BB() { cout<<"BB"; } }; class CC:public BB { public: virtual void f() { BB::f(); cout<<"CC"; } }; int main() { AA aa,*p;BB bb;CC cc; p=&cc; p->f(); return 0; } 运行后的输出结果{{U}} 【15】 {{/U}}。
  • 1、
【正确答案】 1、BBBBAACC    
【答案解析】[解析] 本题考核虚函数。本题中,函数f()在基类AA中派生类CC中都声明为虚函数,所以采用动态联编。主函数首先定义类AA的对象aa和指针对象p,然后定义了类BB的对象bb,此时调用了类BB的构造函数输出BB。再定义类CC的对象cc,由于类CC是类BB的派生类,所以此时又调用类BB的构造函数输出BB。最后执行语句“p=&cc;p->f();”,输出AA和CC。