编程1:定义一个圆类,计算圆的面积和周长。 要求:分别用成员函数和友元函数来求圆的面积和周长。用C++语言来写
时间: 2024-11-03 13:16:51 浏览: 56
在C++中,我们可以创建一个名为Circle的类,包含半径作为数据成员,然后定义成员函数`getArea()`和`getCircumference()`来计算圆的面积和周长。同时,为了让外部可以直接访问这些计算结果,我们也可以将它们声明为友元函数。下面是实现这个需求的代码:
```cpp
#include <iostream>
#include <cmath> // 引入math库以便使用pi常量
class Circle {
private:
double radius; // 圆的半径
public:
// 构造函数
Circle(double r) : radius(r) {}
// 成员函数:计算面积
double getArea() const {
return M_PI * pow(radius, 2); // 使用M_PI常量和pow()函数
}
// 成员函数:计算周长
double getCircumference() const {
return 2 * M_PI * radius;
}
// 友元函数声明
friend std::ostream& operator<<(std::ostream& os, const Circle& circle);
};
// 定义友元函数:输出圆的信息
std::ostream& operator<<(std::ostream& os, const Circle& circle) {
os << "Circle with radius: " << circle.radius << "\n";
os << "Area: " << circle.getArea() << "\n";
os << "Circumference: " << circle.getCircumference() << "\n";
return os;
}
int main() {
Circle c(5.0);
std::cout << c; // 输出圆的面积和周长信息
return 0;
}
```
在这个例子中,`getArea()`和`getCircumference()`是成员函数,而`operator<<`是一个友元函数,它允许我们在标准输出流上调用圆类的对象并显示其属性。
阅读全文