26.下面的类Circle继承于类Point,并重新定义了5个成员函数,其中函数area计算对象的面积并返回;函数getLeftX计算对象最左边的点的x坐标并返回;函数getRightX计算对象最右边的点的x坐标并返回;函数getUpY计算对象最上边的点的y坐标并返回;函数getDownY()计算对象最下边的点的y坐标并返回;完成这5个函数的编写。这5个函数的实现放在类中。
#include <iostream>
#define PI 3.14159
using namespace std;
class Point {
public:
Point(double a=0, double b=0)
{
x = a;
y = b;
}
double area() {return 0;}
double getLeftX() {return x;}
double getRightX() {return x;}
double getUpY() {return y;}
double getDownY() {return y;}
protected:
double x, y; //坐标
};
class Circle : public Point {
public:
Circle(double a=0, double b=0, double c=0)
:Point(a,b)
{
if (c>0)
r = c;
else
r = 0;
}
/**********Program**********/
double area() {
return PI * r * r; // 使用公式 PI*r^2 计算圆的面积
}
double getLeftX() {
return x - r; // 返回左边点的x坐标
}
double getRightX() {
return x + r; // 返回右边点的x坐标
}
double getUpY() {
return y + r; // 返回上边点的y坐标
}
double getDownY() {
return y - r; // 返回下边点的y坐标
}
/********** End **********/
protected:
double r; //半径
};
int main()
{
Circle c1(1,3,5);
cout<<"Left x: "<<c1.getLeftX()<<endl;
cout<<"Right x: "<<c1.getRightX()<<endl;
cout<<"Up y: "<<c1.getUpY()<<endl;
cout<<"Down y: "<<c1.getDownY()<<endl;
cout<<"Area: "<<c1.area()<<endl;
}