有如下程序: #inClude<iostream> using namespace std; class AA { public: viltual void f() { cout<<"AA";

admin2013-02-27  26

问题 有如下程序:
   #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;
   }
   运行后的输出结果【  】。

选项

答案BBBBAACC

解析 本题考核虚函数。本题中,函数f()在基类AA中派生类CC中都声明为虚函数,所以采用动态联编。主函数首先定义类AA的对象aa和指针对象p,然后定义了类BB的对象bb,此时调用了类BB的构造函数输出BB。再定义类CC的对象cc,由于类CC是类BB的派生类,所以此时又调用类BB的构造函数输出BB。最后执行语句“p=&cc;p->f();”,输出AA和CC。
转载请注明原文地址:https://kaotiyun.com/show/cOVp777K
0

最新回复(0)