2024年4月28日发(作者:)

1、点类 Point

class Point

{

protected:

int x,y;

public:

Point() {};

Point(int xx, int yy) { x=xx; y=yy; }

Point(Point &p) { x=p.x; y=p.y; }

int GetX() const { return x; }

int GetY() const { return y; }

void SetXY(int xx, int yy) { x=xx; y=yy; }

friend ostream &operator<<(ostream &, Point &);

};

ostream &operator<<(ostream &os, Point &p)

{ cout<<"X: "<

}

2、圆类 Circle(包含Point类的写法)

class Circle

{

private:

double radius; //半径

Point center; //圆心

public:

Circle() {}

Circle(int x, int y, double r): center(x,y)

{ SetRadius(r); }

Circle(Point p, double r): center(p)

{ SetRadius(r); }

double GetRadius() const { return radius; }

void SetRadius(double r) { radius = (r>=0 ? r : 0); }

void SetValue(int x, int y, double r)

{ (x,y); SetRadius(r); }

double Area();

friend ostream &operator<<(ostream &, Circle &);

};

const double PI=3.14159;

inline double Circle::Area()

{

return PI * radius * radius;

}

ostream &operator<<(ostream &os, Circle &p)

{

os<

}

3、圆类 Circle(继承Point类的写法)

class Circle: public Point

{

private:

double radius; //半径

public:

Circle() {}

Circle(int x, int y, double r): Point(x,y)

{ SetRadius(r); }

Circle(Point p, double r): Point(p)

{ SetRadius(r); }

double GetRadius() const { return radius; }

void SetRadius(double r) { radius = (r>=0 ? r : 0); }

void SetValue(int x, int y, double r)

{ SetXY(x,y); SetRadius(r); }

double Area();

friend ostream &operator<<(ostream &, Circle &);

};

const double PI=3.14159;

inline double Circle::Area()

{

return PI * radius * radius;

}

ostream &operator<<(ostream &os, Circle &c)

{

os<(c)<<", Radius: "<

}

4、线段类 Line

class Line

{

private:

Point p1,p2;

public: