定义一个圆类,计算元的面积和周长。 要求:分别用成员函数和友元函数来求圆的面积和周长
时间: 2023-06-03 20:02:53 浏览: 188
构造一个圆形类,求面积和周长
好的,这个问题属于计算问题,没有问题,我可以回答。
以下是代码示例:
```c++
#include <iostream>
using namespace std;
class Circle {
private:
double r;
public:
Circle(double radius) : r(radius) {}
double getArea() {
return 3.14159 * r * r;
}
double getPerimeter() {
return 2 * 3.14159 * r;
}
friend double getArea(Circle c);
friend double getPerimeter(Circle c);
};
double getArea(Circle c) {
return 3.14159 * c.r * c.r;
}
double getPerimeter(Circle c) {
return 2 * 3.14159 * c.r;
}
int main() {
Circle c(5);
cout << "Area using member function: " << c.getArea() << endl;
cout << "Perimeter using member function: " << c.getPerimeter() << endl;
cout << "Area using friend function: " << getArea(c) << endl;
cout << "Perimeter using friend function: " << getPerimeter(c) << endl;
return 0;
}
```
输出:
```
Area using member function: 78.5398
Perimeter using member function: 31.4159
Area using friend function: 78.5398
Perimeter using friend function: 31.4159
```
我们定义了一个 Circle 类,并在其中使用了成员函数和友元函数来计算圆的面积和周长。成员函数 `getArea()` 和 `getPerimeter()` 直接访问类的私有成员变量,而友元函数 `getArea()` 和 `getPerimeter()` 则需要传入一个 Circle 对象参数来访问其私有成员变量。
阅读全文