题目如下:
请按要求编写一个类Circle,用于描述一个圆形,并用给定的main函数测试Circle类的功能。Circle类的要求如下:
- 包含圆形编号、圆心x坐标、圆心y坐标和半径等数据成员。圆形编号为整形。生成第1个圆形对象时编号为1,生成第2个圆形对象时编号为2,以此类推。每构造一个新的圆形,对象编号为当前最大编号加1(如当前最大编号为5,则生成的这个新圆形的编号应该为6)。
- 是否需要其它数据成员,可视情况自行决定。提示:建议使用两个静态变量。一个静态变量用于记录当前圆形对象的个数,此变量的值可增大或减小;另一个静态变量用于记录已经生成的圆形对象的最大编号,此变量的值只会增大不会减小。
- 1个带有3个参数的构造函数。3个参数分别初始化圆形的圆心x坐标、圆心y坐标和半径等数据成员。提示:圆形对象的编号也需要初始化。
- 1个拷贝构造函数。提示:圆形对象的编号不能简单复制。
- 1个获取当前圆形对象数量的函数。提示:此函数建议为静态函数。
- 前自增运算符,对半径自增1。
- 后自增运算符,对半径自增1。
- +运算符,用于将两个圆形加在一起,得到一个新的圆形。新圆形的圆心坐标是两个圆形坐标连线的中点,面积是两个圆形面积的和。提示:需要根据面积反算半径。
- 流输出运算,用于显示圆形的编号、圆心x坐标、圆心y坐标和半径、面积、周长。一个圆形的信息占1行。
- 析构函数。圆形对象销毁时,需要将当前圆形对象的数量减去1。
- 使用给定的main函数测试Circle类的功能。
代码如下:
///#Author:Rye
#include<bits/stdc++.h>
#define PI 3.1415
using namespace std;
class Circle
{
private:
static int m_number;//当前圆对象的数量
static int m_maxCount;//最大编号
int m_count = 0;//对象编号
double m_x;
double m_y;
double m_r;
public:
Circle(double x,double y,double r){
m_x = x;
m_y = y;
m_r = r;
m_count = ++m_maxCount