有如下程序: #include <iostream> using namespace std; class AA { public: virtual void f() {

admin2009-02-15  49

问题 有如下程序:
     #include <iostream>
     using namespace std;
     class AA
    {
     public:
       virtual 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。再定义类CC的对象cc,由于类CC是类BB的派生类,所以此时又调用类BB的构造函数输出BB。最后执行语句“p=&cc;p->f();”,输出AA和CC。
转载请注明原文地址:https://kaotiyun.com/show/4Okp777K
0

最新回复(0)