有如下程序: #include <iostream> using namespaee std; class ONE{ public: virtual void f( ){cout<<"1";} };

admin2013-02-27  28

问题 有如下程序:
   #include <iostream>
   using namespaee std;
   class ONE{
   public:
   virtual void f( ){cout<<"1";}
   };
   class TWO:public ONE{
   public:
   TWO( )1 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 cc;调用继承类TWO的构造函数打印2;p->f( );调用类TREE的函数f( ),先显式调用TWO类的函数f( ),TWO中没有重新定义f( )函数,所以调用TWO的基类ONE的虚函数f( );打印1,然后再打印3,故答案为2213。
转载请注明原文地址:https://kaotiyun.com/show/viVp777K
0

最新回复(0)