使用友元函数计算两者间距离
时间: 2024-02-21 18:34:51 浏览: 78
好的,这是一个关于编程的问题,使用友元函数计算两者间距离的方法可以通过以下代码实现:
```c++
class Point {
private:
double x;
double 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);
}
```
以上代码定义了一个Point类和一个友元函数distance,可以通过调用distance函数来计算两个点之间的距离。希望这个回答能够帮到你!
相关问题
使用友元函数计算两点间的距离
好的,让我来回答你的问题。计算两点间的距离可以使用友元函数来实现。首先,我们可以定义一个表示二维坐标的结构体,其中包含了两个分别表示 x 和 y 坐标的成员变量。
```C++
struct Point {
double x;
double y;
};
```
然后,我们可以定义一个友元函数,用于计算两个点之间的距离。该函数接收两个 Point 类型的参数,并返回它们之间的距离。
```C++
#include <cmath>
double distance(const Point& p1, const Point& p2) {
double dx = p1.x - p2.x;
double dy = p1.y - p2.y;
return std::sqrt(dx * dx + dy * dy);
}
```
在这里,我们使用了 C++ 标准库中的 sqrt() 函数来计算平方根。
最后,我们可以在主函数中使用该函数来计算两个点之间的距离。例如:
```C++
int main() {
Point p1 = {1.0, 2.0};
Point p2 = {-1.0, 3.0};
double dist = distance(p1, p2); // dist 的值为 2.23607
return 0;
}
```
希望这个回答能帮助你解决问题。如果你有任何其他问题,请随时问我。
定义一个Point类,并使用友元函数计算两个点(二维)之 间的距离。
定义一个`Point`类,我们可以这样设计:
```cpp
#include <iostream>
#include <cmath>
class Point {
public:
// 构造函数,初始化坐标
Point(double x = 0, double y = 0) : x_(x), y_(y) {}
// 获取x和y坐标
double getX() const { return x_; }
double getY() const { return y_; }
// 友元函数:计算两个点之间的欧氏距离
friend double distance(const Point& p1, const Point& p2);
private:
// 私有成员变量,防止直接访问
double x_, y_;
};
// 实现友元函数
double distance(const Point& p1, const Point& p2) {
double dx = p1.getX() - p2.getX();
double dy = p1.getY() - p2.getY();
return std::sqrt(dx * dx + dy * dy);
}
int main() {
Point p1(3, 4); // 创建第一个点 (3, 4)
Point p2(6, 8); // 创建第二个点 (6, 8)
double dist = distance(p1, p2);
std::cout << "The distance between points is: " << dist << std::endl;
return 0;
}
```
在这个例子中,`distance`函数是一个友元函数,它可以直接访问`Point`类的对象,用于计算两点之间的距离。在`main`函数中,我们创建了两个`Point`对象并计算它们之间的距离。
阅读全文