设计一个程序,利用友元函数计算上题中平面上两点之间的距离
时间: 2023-07-14 10:12:32 浏览: 98
好的,我可以为你设计一个求平面上两点距离的程序,利用友元函数实现。以下是示例代码:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
class Point {
private:
double x, y;
public:
Point(double a = 0, double b = 0) : x(a), y(b) {}
friend double distance(Point p1, Point p2);
};
double distance(Point p1, Point p2) {
double dx = p1.x - p2.x;
double dy = p1.y - p2.y;
return sqrt(dx*dx + dy*dy);
}
int main() {
Point p1(0, 0);
Point p2(3, 4);
cout << "Distance between (" << p1.x << "," << p1.y << ") and (" << p2.x << "," << p2.y << ") is " << distance(p1, p2) << endl;
return 0;
}
```
在上述程序中,我们定义了一个 `Point` 类,其中包含了两个私有变量 `x` 和 `y` 表示点的坐标。我们利用 `friend` 关键字声明了一个友元函数 `distance`,用于计算两个点之间的距离。在 `main` 函数中,我们创建了两个 `Point` 类型的对象 `p1` 和 `p2`,并且调用了 `distance` 函数,输出了两点之间的距离。
注意,在 `distance` 函数中,我们可以访问 `Point` 类的私有成员变量 `x` 和 `y`,因为我们已经在 `Point` 类中声明了 `distance` 函数是 `Point` 类的友元函数。这样,我们就可以通过友元函数计算平面上两点之间的距离了。
阅读全文