21xrx.com
2024-12-22 22:24:21 Sunday
登录
文章检索 我的文章 写文章
如何在C++中使用友元函数计算两点间距离?
2023-07-05 04:54:11 深夜i     --     --
C++ 友元函数 计算 两点 间距离

在C++中,我们可以使用友元函数来计算两个点之间的距离。友元函数是在类中声明的一个独立函数,在该类的任何函数中可以访问该函数的私有成员变量和成员函数。友元函数可以在程序中访问私有成员,但它们不是该类的成员函数。

在计算两点之间的距离时,我们需要先定义一个Point类和一个友元函数distance。Point类中包含在x值和y值,distance函数可以通过访问Point类的x和y值来计算两点之间的距离。

下面是一个简单的例子:


#include <iostream>

#include <cmath>

using namespace std;

class Point {

  private:

    int x; // 点的 x 坐标

    int y; // 点的 y 坐标

  public:

    Point(int xval, int yval): x(xval), y(yval) {};

    friend double distance(Point&, Point&);

};

// 计算两点之间的距离

double distance(Point& p1, Point& p2) {

  double distance = sqrt(pow((p2.x - p1.x), 2) + pow((p2.y - p1.y), 2));

  return distance;

}

int main() {

  Point p1(2, 5);

  Point p2(4, 8);

  double dist = distance(p1, p2);

  cout << "距离: " << dist << endl;

  return 0;

}

在上面的代码中,我们定义了一个Point类,它有两个私有成员:x和y。在构造函数中,我们将给定的x和y值分配给相应的成员变量。我们还定义了一个友元函数distance,它是用来计算两点之间的距离。在这个函数中,我们首先计算两点之间水平和垂直的距离,然后使用Pythagoras定理计算两点之间的总距离。

在main函数中,我们创建了两个点p1和p2,并调用了distance函数来计算它们之间的距离。最后,我们将输出结果打印到屏幕上。

因为我们将distance函数声明为Point类的友元,所以它可以访问Point类的私有成员。这种方法使我们可以计算两点之间的距离,而不需要访问Point类的公有成员。

友元函数的使用可以使我们在C++中更加方便地管理和控制相关的类和函数。我们可以定义多个友元函数来计算不同的变量之间的关系,并且可以使这些函数更有效地访问私有成员。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复