以点类Point为基类公有派生圆类Circle,main(void)函数完成对其的测试。

Point类的数据成员包括:

①私有数据成员:X坐标x(double型),Y坐标y(double型)。 Point类成员函数包括: ①有参构造函数Point(double, double)和拷贝构造函数Point(const Point &),其中有参构造函数参数默认值为0,输出信息“Point Constructor run”,拷贝构造函数输出信息“Point CopyConstructor run” ②析构函数,析构函数输出信息“Point Destructor run” ③公有函数成员:void setX(double)和double getX() const分别返回和设置X坐标 ④公有函数成员:void setY(double)和double getY() const分别返回和设置Y坐标 ⑤公有成员函数void show() const用于显示点的坐标信息,显示格式为:(x,y) ⑥公有成员函数double area() const用于计算点的面积,点的面积为0

const double PI = 3.14159;

class Circle : public Point
{
    private:
    
    double radius = 0;
    public:
    Circle (double a = 0, double b = 0, double c = 0):Point(a,b)
    {

        radius = c;
        cout << "Circle Constructor run" << endl;
    }
    Circle (Circle &r) : Point(r)
    {
        radius = r.radius;
        cout << "Circle CopyConstructor run" << endl;
    }
    ~Circle ()
    {
        cout << "Circle Destructor run" << endl;
    }
    void setRadius (double r=0)
    {
        radius = r;
    }
    double getRadius() const
    {
        return radius;
    }
    double circumference() const
    {
        return PI*radius*2;
    }
    double area() const
    {
        return radius*radius*PI;
    }
    void show() const
    {
        cout << "(" << x << "," << y << ")" << "," << "Radius=" << radius;
    }
};