定义一个圆类,计算圆的面积和周长。 要求:分别用成员函数和友元函数来求圆的面积和周长。编程2
时间: 2024-11-20 20:40:10 浏览: 24
在C++中,我们可以定义一个`Circle`类来表示圆,并提供成员函数和友元函数来计算圆的面积和周长。以下是代码示例:
```cpp
#include <iostream>
#include <cmath> // 引入math库用于计算圆周率π和平方根
class Circle {
public:
// 构造函数,初始化半径
Circle(double r) : radius(r) {}
// 成员函数 - 计算面积
double calculate_area() const {
return M_PI * pow(radius, 2);
}
// 成员函数 - 计算周长
double calculate_circumference() const {
return 2 * M_PI * radius;
}
private:
// 圆的半径
double radius;
// 友元函数声明
friend std::ostream& operator<<(std::ostream&, const Circle&);
};
// 友元函数实现 - 输出圆的信息
std::ostream& operator<<(std::ostream& os, const Circle& circle) {
os << "Circle with radius: " << circle.radius << ", Area: " << circle.calculate_area()
<< ", Circumference: " << circle.calculate_circumference() << std::endl;
return os;
}
int main() {
Circle c(5.0); // 创建一个半径为5的圆
std::cout << c; // 使用友元函数输出圆的信息
return 0;
}
```
在这个例子中,`calculate_area()`和`calculate_circumference()`是成员函数,它们在对象内部访问和修改数据。而`operator<<`是一个友元函数,它允许我们在标准输出流上直接对`Circle`对象进行操作。
阅读全文