使用C++编程1:定义一个圆类,计算圆的面积和周长。 要求:分别用成员函数和友元函数来求圆的面积和周长。编
时间: 2024-11-13 11:20:58 浏览: 26
在C++中,你可以创建一个名为Circle的类来表示圆,包含直径或半径作为数据成员,并提供成员函数和友元函数来计算圆的面积和周长。以下是这个类的一个简单实现:
```cpp
#include <iostream>
#include <cmath>
class Circle {
private:
double radius; // 半径
public:
// 构造函数
Circle(double r) : radius(r) {}
// 成员函数:计算面积和周长
double getArea() const {
return M_PI * pow(radius, 2); // 成员函数用于计算面积,使用const修饰可以保证不会修改对象状态
}
double getCircumference() const {
return 2 * M_PI * radius;
}
// 友元函数:为了直接访问Circle类的私有变量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 myCircle(5.0); // 创建一个半径为5的圆
std::cout << myCircle; // 输出圆的属性
return 0;
}
```
在这个例子中,`getArea()` 和 `getCircumference()` 是成员函数,可以直接通过对象调用。而 `operator<<` 是友元函数,它使得我们可以直接在标准输出流上调用对象,无需通过`.`运算符。
阅读全文