问答题 综合应用题 使用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 vol=6.2832 注意:除在指定的位置添加语句外,请不要改动程序中的其他语句。 源程序文件test1_3.cpp清单如下: #include const double pi=3.1416; class circle { protected: // ** 1 ** public: // ** 2 ** circle(double radius){ r=radius; } void print() { area=r*r*pi; cout<<"r="<
【正确答案】(1) double r; double area; (2) circle( ){ r=0; } (3) column(double radius, double height):circle(radius){ h=height;} (4) circle::print( ); cout<<"h="<
【答案解析】主要考查考生对于类的数据成员定义与成员函数构造的掌握,其中(3)使用了参数列表进行变量赋值,(4)使用作用域符::调用基类print函数。