使用VC6打开考生文件夹下的工程test42_3。此工程包含—个test42_3.cpp,其中定义了类Cpolygon、COutput和CTriangle,其中CTriangle类由Cpolygon和COutput类public派生,但三个类的定义并不完整

admin2010-02-08  54

问题 使用VC6打开考生文件夹下的工程test42_3。此工程包含—个test42_3.cpp,其中定义了类Cpolygon、COutput和CTriangle,其中CTriangle类由Cpolygon和COutput类public派生,但三个类的定义并不完整。请按要求完成下列操作,将程序补充完整。
   (1)定义类CPolygon的保护数据成员width和height,它们都是int型的数据。请在注释“//**1**”之后添加适当的语句。
   (2)完成类CPolygon的成员函数set_values(int a,int b),使参数a和b分别赋值给保护数据成员width和height,请在注释“//**2**”之后添加适当的语句。
   (3)完成类Coutput的成员函数output(int)的定义,将传入的参数为血型的i输出到屏幕并换行,请在注释“//**3**”之后添加适当的语句。
   (4)完成派生类CTriangle的声明,它由Cpolygon和COutput类public派生,请在注释“//**4**”之后添加适当的语句。
   源程序文件test42_3.cpp清单如下:
       #include <iostream.h>
       class CPolygon
       {
       protected:
         // ** 1 **
       public:
         void set_values(int a,  int b)
         {
              // ** 2 **
         }
       };
       class COutput
       {
       public:
         void output(int i);
       };
       void COutput::output(int i)
       {
         // ** 3 **
       }        
       // ** 4 **
       {
       public:
         int area  (void)
         {
             return  (width * height / 2);
         }
       }
       int main ()
       {
         CTriangle trgl;
         trgl.set_values (4,5);
         trgl.output (trgl.area());
         return 0;
       }

选项

答案(1) int width, height; (2) width=a; height=b; (3) cout << i << endl; (4) class CTriangle:public CPolygon, public Coutput

解析 主要考查考生对于类的定义和派生类声明的掌握,其中(4)中对于多继承的声明按照如下的格式:关键字class派生类名:继承方式继承类名,继承方式继承类名,在多继承中,一定要注意防止程序的二义性,同时要善于利用基类中已经定义的方式,才能达到代码复用的作用。
转载请注明原文地址:https://kaotiyun.com/show/X7ID777K
0

最新回复(0)