使用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();
参考答案:
(A)
doubler;
double area;
(B)
circle(){r=0;}
(C)
column(double radius,double height):circle(radius){h=height;}
(D)
circle::print();
cout<<"h="<<h<<" "<<"vol="<<area *h<<endl;
解析:
主要考查考生对于类的数据成员定义与成员函数构造的掌握,其中(3)使用了参数列表进行变量赋值,(4)使用作用域符::调用基类print函数。