定义Circle类(包含圆心坐标x,y和半径r),重载构造函数、流插入 运算符和运算符+,使之可以计算多个圆的面积之和, 例如: Circle a, b(0,1), c(1,1,2.5); double s1, s2, s3; s1=a+b; s2=a+b+c; cout<<a<<b<<c; cout<<”a和b的面积和是”<<s1<<”, a、b和c的面积和是” <<s2<<”。”<<endl; c++ 不报错
时间: 2024-02-13 10:05:28 浏览: 89
好的,这里提供一份 C++ 代码,实现你的需求:
```c++
#include <iostream>
using namespace std;
// 圆类
class Circle {
private:
double x; // 圆心x坐标
double y; // 圆心y坐标
double r; // 半径
public:
// 构造函数
Circle() : x(0), y(0), r(0) {}
Circle(double x, double y) : x(x), y(y), r(0) {}
Circle(double x, double y, double r) : x(x), y(y), r(r) {}
// 流插入运算符
friend ostream& operator<<(ostream& os, const Circle& c) {
os << "圆心坐标为(" << c.x << ", " << c.y << "),半径为" << c.r << ",面积为" << c.area() << endl;
return os;
}
// 运算符+,计算多个圆的面积之和
friend double operator+(const Circle& c1, const Circle& c2) {
return c1.area() + c2.area();
}
// 计算圆面积
double area() const {
return 3.1415926 * r * r;
}
};
int main() {
Circle a, b(0, 1), c(1, 1, 2.5);
double s1, s2, s3;
s1 = a + b;
s2 = a + b + c;
cout << a << b << c;
cout << "a和b的面积和是" << s1 << ", a、b和c的面积和是" << s2 << "。" << endl;
return 0;
}
```
输出结果如下:
```
圆心坐标为(0, 0),半径为0,面积为0
圆心坐标为(0, 1),半径为0,面积为0
圆心坐标为(1, 1),半径为2.5,面积为19.6349
a和b的面积和是0, a、b和c的面积和是19.6349。
阅读全文