使用VC6打开考生文什夹下的工程test1_3。此工程包含一个test1_3.cpp,其中定义了类circle和column,其中column类由circle类protected派生,但两个类的定义并不完整。请按要求完成下列操作,将程序补充完整。 (

admin2009-01-15  56

问题 使用VC6打开考生文什夹下的工程test1_3。此工程包含一个test1_3.cpp,其中定义了类circle和column,其中column类由circle类protected派生,但两个类的定义并不完整。请按要求完成下列操作,将程序补充完整。
   (1)定义类circle的保护数据成员r和area,它们都是double型的数据。请在注释“//**1**”之后添加适当的语句。
   (2)添加类circle的无参数的构造函数,使circle对象的r默认值为0,请在汁释“//**2**”之后添加适当的语句。
   (3)添加派生类column构造函数的定义,传入的参数为double型的height和radius,并将具分别赋值给数擗成员h和基类的r,请在注释“//**3**”之后添加适当的语句。
   (4)完成派生类column的成员函数print的定义,使其以格式“r=_area=_”先输出半径r和底面积area,再以格式“h=_vol=_”输出高h和体积vol的值,请在注释“//**4**”之后添加适当的语句。
   输山结果如下:
   r=1 area=3.1416
   h=2 vo1=6.2832
   注意:除在指定的位置添加语句外,请不要改动程序中的其他语句。
   源程序文件test1_3.cpp清单如下:
       #include<iostream.h>
       const double pi=3.1416;
       class  circle
       {
       protected:
         //**1**
       public:
         //**2**
        circle(double radius){ r=radius;}
        void print()
        {
           area=r*r*pi;
           cout<<"r="<<r<<"  "<<"area="<<ared<<endl;
        }
       };
       class column: protected circle
       {
       protected:
        double h;
       public:
           //** 3 **
           void print()
           {
               // ** 4 **
           }
       };
       void main()
       {
        column col(1.0,2.0);
        Col.print();
       }

选项

答案(1) doubler; double area; (2) circle(){r=0;} (3) column(double radius,double height):circle(radius){h=height;} (4) circle::print(); cout<<"h="<<h<<" "<<"vol="<<area *h<<endl;

解析 主要考查考生对于类的数据成员定义与成员函数构造的掌握,其中(3)使用了参数列表进行变量赋值,(4)使用作用域符::调用基类print函数。
转载请注明原文地址:https://kaotiyun.com/show/COID777K
0

最新回复(0)