用c++设计一个圆类circle,通过成员函数求圆的面积和周长,并自定义合适的构造函数和析构函数
时间: 2024-10-10 14:03:10 浏览: 57
在C++中,我们可以设计一个名为`Circle`的类来表示圆,它包含半径`radius`作为数据成员,并提供计算面积和周长的成员函数。同时,我们需要定义构造函数用于初始化圆的半径,以及析构函数来清理资源。下面是这个类的基本设计:
```cpp
#include <cmath>
class Circle {
private:
double radius;
public:
// 构造函数
Circle(double r) : radius(r) {
// 对于圆类,可以在此进行一些基本检查,如确保半径非负
if (r < 0) {
throw std::invalid_argument("Radius must be non-negative.");
}
}
~Circle() {
// 可能不需要显式释放资源,因为C++默认会处理内存管理
// 这里仅作示例
std::cout << "Circle object destructed." << std::endl;
}
// 计算面积
double getArea() const {
return M_PI * pow(radius, 2);
}
// 计算周长
double getCircumference() const {
return 2 * M_PI * radius;
}
};
// 示例用法
int main() {
try {
Circle c(5.0); // 创建半径为5的圆
std::cout << "Area: " << c.getArea() << std::endl;
std::cout << "Circumference: " << c.getCircumference() << std::endl;
} catch (const std::exception& e) {
std::cerr << "Error: " << e.what() << std::endl;
}
return 0;
}
```
在这个设计中,构造函数接受一个double类型的半径值并设置到类内部,析构函数用于表示当对象生命周期结束时的清理工作。通过`getArea()`和`getCircumference()`这两个成员函数,我们可以方便地获取圆的面积和周长。
阅读全文