使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 其中:定义了类circle和column,column类由circle类protected派生,但是两个类的定义并不完整,请按

admin2018-10-23  19

问题 使用VC6打开考生文件夹下的源程序文件modi3.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()的定义,请在注释//********4********之后完成,使得输出为:
    radius=5  area=78.54
    height=10 vol=785.4
    注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。
1  #include<iostream.h>
2 const double pi=3.1416;
3  class circle
4  {
5  protected:
6    //********1********
7
8  public:
9    //********2********
10
11    {
12    r=0.0;
13    }
14    circle(double radius)
15    {
16    r=radius;
17    }
18    void print()
19    {
20    area=r*r*pi;
21    cout<<’’radius=’’<<r<<’’<<’’area=’’<<area<<end1;
22    }
23  };
24  class column:protected circle
25  {
26   protected:
27    double h;
28  public:
29    //********3********
30
31    {
32    h=height;
33    r=radius;
34    }
35    void print()
36    {
37    circle::print();
38   //********4********
39
40    }
41  };
42  int main()
43  {
44    column co1(5.0,10.0);
45    co1.print();
46    return 0;
47  }

选项

答案(1)添加语句:double r,area; (2)添加语句:circle() (3)添加语句:column(double radius,double height) (4)添加语句:cout<<’’height=’’<<h<<’’<<’vo1=’’ <<area*h<<end1;

解析 本题的功能是计算圆的面积和周长。在VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已定源程序的main主函数开始入手,可以看出程序通过调用类和成员函数实现各种输出操作。
    (1)题目1要求“定义类circle的保护数据成员函数r和area,它们都是double型的数据”。保护成员与private和public一样是用来声明成员的访问权限的。在已有程序circle类中的protected:区域,添加变量r和area的定义,即“double r,area;”。
    (2)题目2要求“添加类circle的无参数的构造函数,使得类circle对象的r默认值为0”。在C++中,构造函数是一种特殊的成员函数,它的名字与类同名,没有参数的构造函数一般形式为:构造函数名(),所以这里添加“circle()”。
    (3)题目3要求“添加派生类column的构造函数的定义”。同(2),另外带参数的构造函数的一般格式为:构造函数名(类型1形参1,类型2形参2,……),所以这里添加“column(double radius,double height)”。
    (4)题目4要求“完成派生类column的成员函数print()的定义”。根据题干中输出结果,知道第一个输出值为height,第二个输出值为vol,即area*h,所以这里添加  “cout<<”height  =’’<<h<<’’<<’’vol=’’<<area?*h<<end1;”。
转载请注明原文地址:https://kaotiyun.com/show/e5Ap777K
0

最新回复(0)