[苏州大学C++]大一下C++第二次考试,迎接考试小练习3

这篇博客探讨了在C++中设计一个Circle类的需求,包括数据成员、构造函数、拷贝构造函数、静态变量的使用以及运算符重载。作者通过实例解释了如何正确处理静态变量,特别是当涉及到拷贝构造函数和友元函数时,强调了常引用在防止静态变量错误计数中的重要性。
摘要由CSDN通过智能技术生成

题目如下:
请按要求编写一个类Circle,用于描述一个圆形,并用给定的main函数测试Circle类的功能。Circle类的要求如下:

  1. 包含圆形编号、圆心x坐标、圆心y坐标和半径等数据成员。圆形编号为整形。生成第1个圆形对象时编号为1,生成第2个圆形对象时编号为2,以此类推。每构造一个新的圆形,对象编号为当前最大编号加1(如当前最大编号为5,则生成的这个新圆形的编号应该为6)。
  2. 是否需要其它数据成员,可视情况自行决定。提示:建议使用两个静态变量。一个静态变量用于记录当前圆形对象的个数,此变量的值可增大或减小;另一个静态变量用于记录已经生成的圆形对象的最大编号,此变量的值只会增大不会减小。
  3. 1个带有3个参数的构造函数。3个参数分别初始化圆形的圆心x坐标、圆心y坐标和半径等数据成员。提示:圆形对象的编号也需要初始化。
  4. 1个拷贝构造函数。提示:圆形对象的编号不能简单复制。
  5. 1个获取当前圆形对象数量的函数。提示:此函数建议为静态函数。
  6. 前自增运算符,对半径自增1。
  7. 后自增运算符,对半径自增1。
  8. +运算符,用于将两个圆形加在一起,得到一个新的圆形。新圆形的圆心坐标是两个圆形坐标连线的中点,面积是两个圆形面积的和。提示:需要根据面积反算半径。
  9. 流输出运算,用于显示圆形的编号、圆心x坐标、圆心y坐标和半径、面积、周长。一个圆形的信息占1行。
  10. 析构函数。圆形对象销毁时,需要将当前圆形对象的数量减去1。
  11. 使用给定的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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值