定义一个圆类,计算圆的面积和周长。 要求:分别用成员函数和友元函数来求圆的面积和周长
时间: 2024-11-03 12:17:09 浏览: 46
为了定义一个计算圆的面积和周长的`Circle`类,我们可以创建一个包含半径的类,并提供两个成员函数(`get_area()`和`get_circumference()`)用于计算面积和周长。同时,我们也可以添加一个友元函数,以便于直接访问类的私有数据。下面是一个简单的示例:
```cpp
#include <cmath> // 引入math库,用于获取pi和平方根
class Circle {
private:
double radius; // 圆的半径
public:
// 构造函数
Circle(double r) : radius(r) {}
// 成员函数 - 计算面积
double get_area() const {
return M_PI * pow(radius, 2); // 使用π和radius的平方计算面积
}
// 成员函数 - 计算周长
double get_circumference() const {
return 2 * M_PI * radius; // 使用2π乘以radius计算周长
}
// 友元函数 - 直接访问半径并打印信息(仅作为示例,实际应用可能不需要)
friend void print_info(const Circle& circle);
};
// 友元函数实现
void print_info(const Circle& circle) {
std::cout << "半径: " << circle.radius << ", 面积: " << circle.get_area() << ", 周长: " << circle.get_circumference() << std::endl;
}
int main() {
Circle c(5.0);
print_info(c); // 输出圆的信息
return 0;
}
```
在这个例子中,`get_area()`和`get_circumference()`是成员函数,它们可以安全地访问类的内部数据`radius`。而`print_info()`是友元函数,它不是类的一部分,但可以直接访问类的属性。
阅读全文