6-6 计算两点之间距离(友元函数)
时间: 2024-05-05 07:15:43 浏览: 214
以下是一个示例程序,演示如何通过友元函数计算两点之间的距离:
```c++
#include <iostream>
#include <cmath>
using namespace std;
class Point {
private:
double x;
double y;
public:
Point(double x = 0, double y = 0) : x(x), y(y) {}
friend double distance(const Point& p1, const Point& p2);
};
double distance(const Point& p1, const Point& p2) {
double dx = p1.x - p2.x;
double dy = p1.y - p2.y;
return sqrt(dx * dx + dy * dy);
}
int main() {
Point p1(1, 2);
Point p2(3, 4);
cout << "Distance between p1 and p2 is " << distance(p1, p2) << endl;
return 0;
}
```
在这个示例程序中,我们定义了一个 `Point` 类,该类具有两个私有成员变量 `x` 和 `y`,表示点的坐标。我们还定义了一个友元函数 `distance`,该函数接受两个 `Point` 类型的参数,并计算这两个点之间的距离。在 `Point` 类定义中,我们使用 `friend` 关键字将 `distance` 函数声明为友元函数,以便它可以访问 `Point` 类的私有成员变量。在 `main` 函数中,我们创建两个 `Point` 对象 `p1` 和 `p2`,并通过调用 `distance` 函数计算它们之间的距离,并将结果输出到控制台。
阅读全文