使用VC6打开考生文件夹下的工程MyProj9。此工程包含一个源程序文件MyMain9.cpp。程序中定义了两个类Point和Circle,但类的定义并不完整。 请按要求完成下列操作,将类Sample的定义补充完成: ①类Circle是基类Point公有派生宋的。请在注释“//* *1* *”之后添加适当的语句。 ②完成构造函数Circle(int a,int b,int c)的定义,采用初始化列表的方式使基类Point私有成员x、y分别初始化为a、b,类Circle的私有成员r初始化为c。请在注释“//* *2* *”之后添加适当的语句。 ③完成类Circle的成员函数area()的类体外的定义。函数area的功能是计算出此圆对象的面积,即PI*r*r。请在注释“//* *3* *”之后添加适当的语句。 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。 源程序文件MyMain9.cpp清单如下://MyMain9.cpp#include <iostream>using namespace std;#define PI 3.14class Point {private: int x, y;public: Point (int a, int b) { x=a; y=b; } int getx () { return x; } int gety() { return y; } };//* *1* * {private: int r;public: //* *2* * int getr() { return r; } double area(); }; double Circle::area() { //* *3* * } int main() { Circle c1(5,7,10); cout<<c1.area()<<end1; return 0; }
参考答案:
解析:①classCircle:public Point ②Circle(int a,int b,int c):Point(a,b){r=c;} ③return PI*r*r;本程序设计了一个点类Point,包含了横、纵两个坐标数据x和y,由它公有派生出了圆类Circle,并加入了新的数据成员,即一个半径数据r和一个求圆面积的函数成员area()。在主函数中,首先定义了一个圆Circle类的对象c1,并通过它的构造函数初始化其数据成员。由此可知,其半径r的值为10,所以其面积为PI*10*10=314,即对象c1的函数成员area()的返回值为314。