使用VC6打开考生文件夹下的工程test3_3,此工程包含一个源程序文件test3_3.cpp,其中建立了普通的基类base用于存储边的信息,建立派生类triangle和square,用于存储三角形和正方形的信息。按要求完成下列操作,将类定义补充完整。

admin2009-01-15  40

问题 使用VC6打开考生文件夹下的工程test3_3,此工程包含一个源程序文件test3_3.cpp,其中建立了普通的基类base用于存储边的信息,建立派生类triangle和square,用于存储三角形和正方形的信息。按要求完成下列操作,将类定义补充完整。
   (1)定义基类base的保护数据成员x和y用于记录边的长度,它们都是int型的数据。请在注释“//**1**”之后添加适当的语句。
   (2)完成基类base默认构造函数的定义,把数据成员x和y分别初始化为参数a和b的值,要求使用作用域符“::”。请在注释“//**2**”之后添加适当的语句。
   (3)完成派生类triangle函数disp的定义,使其以“三角形面积:”的格式将三角形的面积输出到屏幕上。请在注释“//**3**”之后添加适当的语句。
   (4)添写派生类square的默认构造函数的定义,使其调用基类的构造函数,记录下正方形的边长信息a,其缺省值为0。请在注释“//** 4 **”之后添加适当的语句。
   输出结果如下:
   三角形面积:200
   正方形面积:400
   注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
   源程序文件test3_3.cpp清单如下:
   #include<iostream.h>
   class base
   {
   protected:
     //** 1 **
   public:
     base(int a,int b)
     {
        //** 2 **
     }
     virtual void disp(){cout<<"调用base基类"<<endl;)
   };
   class triangle:public base
   {
   public:
     triangle(int a,int b):base(a,b){};
       void disp()
     {
         //** 3 **
     }
   };
   class square:public base
   {
   public:
      //** 4 **
      void disp(){cout<<"正方形面积:"<<x*y<<endl;}
   };
   void main()
   {
     base *p;
     triangle t(20,20);
     square s(20);
     p=&t;
     p—>disp();
     p=&S;
     p->disp();
   }

选项

答案(1) int x; int y; (2) base::x=a; base::y=b; (3) cout<<"三角形面积:"<<x*y*0.5<<endl; (4) square(int a=0):base(a,a){};

解析 本题考查考生对类的继承与派生的掌握,包括派生类对基类成员的访问和派生类构造函数的定义等知识点。其中(4)是对类的构造函数设定参数的缺省值,该函数应该实现将参数传递给基类的功能。
转载请注明原文地址:https://kaotiyun.com/show/1KID777K
0

最新回复(0)