阅读以下说明,以及用C++在开发过程中所编写的程序代码,将应填入(n)处的字句写在对应栏内。 【说明】 在下面程序横线处填上适当的字句,3个(2)空填的是一样的。使其输出结果为: x=5 x=6 y=7 x=8

admin2010-01-15  35

问题 阅读以下说明,以及用C++在开发过程中所编写的程序代码,将应填入(n)处的字句写在对应栏内。
    【说明】
   在下面程序横线处填上适当的字句,3个(2)空填的是一样的。使其输出结果为:
   x=5

   x=6
   y=7

   x=8
   z=9
   【程序】
   #include<iostream.h>
   class X1{
     int x;
       (1);
     X1(int xx=0){x=xx;}
       (2)  void Output(){
     cout<<"x="<<x<<end;
     }
   };
     (3)  Y1:public X1{
     int y;
     public:
      Y1(int xx=0,int yy=0);X1(xx){y=yy;}
       (2)  void Output(){
       (4)  Output();
     cout<<"y="<<y<<endl;
     }
   };
   class Z1:public X1{
       int z:
         (5);
       Z1(int xx=0,int zz=0):X1(xx)(z=zz;}
         (2)  void Output(){
       X1∷Output();
       cout<<"z="<<z<<endl;
     }
   };
   void main()
   {
     X1 a(5);Y1 b(6,7);Z1 c(8,9);
     X1*p[3]={&a,&b,&c);
     For(int i=0;i<3;i++){
       p->Output();cout<<endl;
     }
   }

选项

答案(1)public (2)virtual (3)class (4)X1∷ (5)public

解析 本题考查了C++类的定义、成员变量的声明、类继承以及虚函数的一些基本知识。
   我们对比三个类的定义就可以发现,在类x1和z1的定义中缺少类的成员属性声明,而类一般将成员变量声明为公有的、私有的或受保护的三种类型中的一种,在类的定义中,我们一般将类的构造函数放在公有的属性下面,在题目中只能选择公有的属性了,因此,第(1)空和第(5)空中应该填public。
   对三个类的定义进行仔细观察后,我们同样可以发现,每个类中都定义了一个同名函数Output(),而且在后两个类的函数体中调用了函数Output(),由此,我们应该想到虚函数。虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。因此,第(2)空应该填virtual。
   第(3)空就简单了,考查类的定义,应该填类的标识符class。
   从程序中我们可以看到,类Y1和Z1都以公有的方式继承类X1。从输出的结果来分析,类Y1和Z1都输出了两个数,但单从类Z1的函数来看,只能输出一个变量的值 Z,因此,可以发现在类Z1中应该和类Y1一样,都调用了类X1的函数Output(),因此,第(4)空的答案为X1∷。
转载请注明原文地址:https://kaotiyun.com/show/cIjZ777K
0

随机试题
最新回复(0)