【问题描述】声明一个Circle类,有数据成员Radius(半径)、成员函数GetArea(),并满足以下要求。 (1)需要定义和合理的构造函数。 (2)使用函数重载方式重载成员函数,当输入一个参数时,被认作创建圆,并认为输入圆半径,计算并返回圆的面积;当输入两个参数时,认为创建一个圆,计算并返回圆环的面积; (3)其他自行界定。 (4)编写合适的主函数,构造一个Circle的对象进行对象创建,以及成员函数的测试。 样例1: 【输入形式】10 【输出形式】 the circle is created! the area is:314 样例2: 【输入形式】10 5 【输出形式】 the circle is created! the ring's area is:235.5
时间: 2024-03-23 20:42:05 浏览: 59
根据您的问题描述,我编写了以下代码实现Circle类的功能:
```c++
#include <iostream>
using namespace std;
const double PI = 3.1415926535;
class Circle {
private:
double radius;
public:
Circle() { // 默认构造函数
radius = 0;
cout << "a circle is created!" << endl;
}
Circle(double r) { // 构造函数1:创建圆
radius = r;
cout << "a circle is created!" << endl;
}
Circle(double r1, double r2) { // 构造函数2:创建圆环
radius = r1;
cout << "a ring is created!" << endl;
}
double getArea() const { // 成员函数1:计算圆面积
return PI * radius * radius;
}
double getArea(double r) const { // 成员函数2:计算圆环面积
return PI * (r * r - radius * radius);
}
};
int main() {
double r1, r2;
cout << "Please input the radius of the circle: ";
cin >> r1;
Circle circle1(r1);
cout << "the area is:" << circle1.getArea() << endl;
cout << "Please input the radius of the outer circle and inner circle: ";
cin >> r1 >> r2;
Circle circle2(r1, r2);
cout << "the ring's area is:" << circle2.getArea(r2) << endl;
return 0;
}
```
在上述代码中,我定义了一个Circle类,包含了默认构造函数和两个构造函数,以及两个成员函数,分别用于计算圆和圆环的面积。在主函数中,我创建了两个对象,分别用于测试圆和圆环的面积计算。
阅读全文