定义一个友元函数,求任意两点之间的距离。
时间: 2024-05-03 22:18:50 浏览: 25
假设有一个点类 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。
相关问题
编写程序用友元函数计算两点之间的距离。
好的,以下是用中文回复:
友元函数是指在类中声明的函数,可以访问该类的私有成员。如果我们想要计算两点之间的距离,可以定义一个Point类表示点,然后在类中声明一个友元函数来计算距离。
具体实现如下:
```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(4, 6);
cout << "Distance between p1 and p2 is: " << distance(p1, p2) << endl;
return 0;
}
```
在上面的代码中,我们定义了一个Point类,其中包含了两个私有成员变量x和y,表示点的坐标。然后我们在类中声明了一个友元函数distance,用来计算两个点之间的距离。
在distance函数中,我们首先计算出两个点在x和y方向上的距离,然后使用勾股定理计算出它们之间的距离。最后在main函数中,我们创建了两个点p1和p2,并调用distance函数来计算它们之间的距离。
输出结果为:
```
Distance between p1 and p2 is: 5
```
这就是用友元函数计算两点之间距离的方法。
编写程序用友元函数计算两点之间的距离
好的,以下是用友元函数计算两点之间距离的程序:
```c++
#include <iostream>
#include <cmath>
using namespace std;
class Point {
private:
double x, y;
public:
Point(double x = , double y = ) : 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(4, 6);
cout << "Distance between p1 and p2 is " << distance(p1, p2) << endl;
return ;
}
```
在这个程序中,我们定义了一个 `Point` 类,其中包含了两个私有成员变量 `x` 和 `y`,表示点的横纵坐标。然后我们定义了一个友元函数 `distance`,用来计算两个点之间的距离。在 `distance` 函数中,我们通过两个点的横纵坐标计算出它们之间的距离,并返回这个距离值。
在 `main` 函数中,我们创建了两个点 `p1` 和 `p2`,然后调用 `distance` 函数计算它们之间的距离,并输出结果。