声明并实现一个圆类,有半径一个数据属性,通过成员函数求圆的面积。(要求至少包括:构造函数、析构函数、拷贝构造函数、内联成员函数,带默认形参值的函数)
时间: 2023-06-20 09:06:36 浏览: 143
求圆的面积的代码
以下是圆类的实现:
```c++
#include <iostream>
using namespace std;
class Circle {
private:
double radius;
public:
// 构造函数
Circle(double r = 0) : radius(r) {
cout << "Circle constructed!" << endl;
}
// 拷贝构造函数
Circle(const Circle& c) : radius(c.radius) {
cout << "Circle copy constructed!" << endl;
}
// 析构函数
~Circle() {
cout << "Circle destructed!" << endl;
}
// 计算面积的成员函数
inline double getArea() const {
return 3.1415926 * radius * radius;
}
// 设置半径的函数
void setRadius(double r) {
radius = r;
}
};
int main() {
Circle c1(2.5);
cout << "The area of circle c1 is: " << c1.getArea() << endl;
Circle c2(c1);
cout << "The area of circle c2 is: " << c2.getArea() << endl;
c2.setRadius(3.5);
cout << "The area of circle c2 is: " << c2.getArea() << endl;
return 0;
}
```
运行结果为:
```
Circle constructed!
The area of circle c1 is: 19.6349
Circle copy constructed!
The area of circle c2 is: 19.6349
The area of circle c2 is: 38.4847
Circle destructed!
Circle destructed!
Circle destructed!
```
说明:
- 该圆类有一个私有数据属性 radius 表示圆的半径。
- 该类有一个构造函数,用于初始化对象,如果没有传入半径参数,则默认半径为 0。
- 该类有一个拷贝构造函数,用于复制对象。
- 该类有一个析构函数,用于释放对象占用的资源。
- 该类有一个成员函数 getArea(),用于计算圆的面积,并返回面积值。
- 该类有一个成员函数 setRadius(),用于设置圆的半径。
- 在 getArea() 函数前使用了 inline 关键字,表示该函数是内联函数,可以提高函数执行效率。
- 在 main() 函数中,分别创建了两个圆对象 c1 和 c2,并计算了它们的面积。
- 在创建 c2 的过程中,使用了拷贝构造函数。
- 在修改 c2 的半径之后,重新计算了 c2 的面积。
阅读全文