定义一个友元函数,求任意两点之间的距离。
时间: 2024-05-03 10:18:50 浏览: 119
改算法可以求任意两点之间的最短距离,只要修改里面的邻接矩阵即可.zip
假设有一个点类 Point,其中包含私有成员变量 x 和 y 分别表示该点的横纵坐标,可以按照如下方式定义友元函数 distance:
```c++
#include <cmath>
class Point {
private:
double x, y;
public:
Point(double x, double y) : x(x), y(y) {}
friend double distance(const Point& a, const Point& b);
};
double distance(const Point& a, const Point& b) {
double dx = a.x - b.x;
double dy = a.y - b.y;
return std::sqrt(dx * dx + dy * dy);
}
```
在这个友元函数中,我们使用了 cmath 库中的 sqrt 函数来计算两点之间的距离。使用该函数,可以这样计算两个点 A 和 B 之间的距离:
```c++
Point a(1.0, 2.0);
Point b(3.0, 4.0);
double d = distance(a, b);
```
其中 d 的值将等于根号下 8。
阅读全文