设计一个程序,利用友元函数计算上题中平面上两点之间的距离。
时间: 2024-05-06 13:18:16 浏览: 100
以下是一个简单的程序,用于计算平面上两点之间的距离:
```c++
#include <iostream>
#include <cmath>
using namespace std;
class Point {
private:
double x, y;
public:
Point(double x = 0, double y = 0) : x(x), y(y) {}
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(1, 2);
Point p2(3, 4);
double dist = distance(p1, p2);
cout << "Distance between p1 and p2: " << dist << endl;
return 0;
}
```
在这个程序中,我们定义了一个 `Point` 类来表示平面上的点,并声明了一个名为 `distance` 的友元函数,用于计算两个点之间的距离。
在 `distance` 函数中,我们可以访问 `Point` 类的私有成员变量 `x` 和 `y`,因为它被声明为了 `Point` 类的友元函数。
在主函数中,我们创建了两个 `Point` 对象 `p1` 和 `p2`,并传递它们给 `distance` 函数以计算它们之间的距离。最后,我们输出了结果。
阅读全文