用c++定义一个圆类,计算圆的面积和周长。 要求:分别用成员函数和友元函数来求圆的面积和周长
时间: 2024-10-29 11:19:36 浏览: 43
c++程序圆类设计.zip
在C++中,我们可以定义一个`Circle`类来表示圆,并包含成员变量半径`radius`,以及成员函数`getArea()`和`getCircumference()`用于计算面积和周长。这里提供一个基本的实现:
```cpp
#include <iostream>
#include <cmath> // 引入math库以便使用π和pow
class Circle {
private:
double radius;
public:
// 构造函数
Circle(double r) : radius(r) {}
// 成员函数 - 计算面积
double getArea() const {
return M_PI * pow(radius, 2);
}
// 成员函数 - 计算周长
double getCircumference() const {
return 2 * M_PI * radius;
}
// 友元函数 - 提供对私有变量的访问权限
friend std::ostream& operator<<(std::ostream& os, const Circle& c); // 定义友元操作符,方便输出
};
// 友元函数实现
std::ostream& operator<<(std::ostream& os, const Circle& c) {
os << "Circle with radius: " << c.radius << ", Area: " << c.getArea() << ", Circumference: " << c.getCircumference();
return os; // 返回os以支持链式输出
}
int main() {
Circle circle(5.0);
std::cout << circle; // 输出圆的属性
return 0;
}
```
在这个例子中,`operator<<`是一个友元函数,它允许我们在标准输出流上调用圆对象的`getArea()`和`getCircumference()`。当创建Circle对象并输出时,它会自动显示面积和周长。
阅读全文