1. 简答题 声明并实现一个Circle类,有成员变量radius(半径)、成员函数Getarea()。(要求实现重载的构造函数、拷贝构造函数、析构函数,并在main()中测试该类) 1/8
时间: 2024-10-12 08:07:29 浏览: 28
首先,我们创建一个名为Circle的类,用于表示圆形,并包含成员变量radius(半径)。我们将实现一个GetArea()方法用于计算圆的面积,同时会添加重载的构造函数、拷贝构造函数以及析构函数。
```cpp
#include <iostream>
using namespace std;
class Circle {
private:
double radius; // 半径
public:
// 构造函数
Circle(double r = 0) { // 默认构造函数
radius = r;
}
// 重载构造函数
Circle(const Circle& c) { // 拷贝构造函数
radius = c.radius;
}
~Circle() { // 析构函数
// 无特别资源需要释放,这里可以省略
// cout << "Circle destructor called." << endl;
}
// 计算面积,实现方法重载
double GetArea() const {
return M_PI * radius * radius;
}
// 测试类
friend void testCircle();
};
// 测试函数
void testCircle() {
Circle circle1(5); // 使用默认构造函数创建一个半径为5的圆
cout << "Circle 1 area: " << circle1.GetArea() << endl;
Circle circle2(7); // 使用带参数的构造函数创建一个半径为7的圆
cout << "Circle 2 area: " << circle2.GetArea() << endl;
Circle circle3(circle2); // 使用拷贝构造函数复制circle2
cout << "Circle 3 area (copy of circle2): " << circle3.GetArea() << endl;
}
int main() {
testCircle(); // 调用testCircle函数测试Circle类
return 0;
}
```
在这个例子中,`testCircle()`函数展示了如何使用不同类型的构造函数创建Circle对象,并通过`GetArea()`方法计算它们的面积。运行这个程序,你会看到每个圈的面积信息。
阅读全文