编写程序,定义一个平面点“Point”类及计算两点之间距离“Distance”类,将“Distance”类定义为“Point”类的友元类;并在main()中计算任意两点的距离
时间: 2024-06-10 10:08:18 浏览: 252
当然,我很愿意回答您的问题!对于您的问题,我认为是一个关于C++编程的问题。下面是我为您提供的代码示例:
#include<iostream>
#include<cmath>
using namespace std;
class Point; //预先声明Point类,因为Distance类要用到
class Distance{ //定义Distance类
public:
friend double GetDistance(Point p1, Point p2); //将GetDistance函数声明为Point类的友元函数
};
class Point{ //定义Point类
public:
Point(double x = 0, double y = 0){
this->x = x;
this->y = y;
}
friend double GetDistance(Point p1, Point p2){ //定义GetDistance函数,注意友元的使用
double dx = p1.x - p2.x;
double dy = p1.y - p2.y;
return sqrt(dx * dx + dy * dy); //计算距离并返回
}
private:
double x, y;
};
int main(){
Point p1(1.0, 2.0);
Point p2(3.0, 4.0);
cout << "The distance between two points is " << GetDistance(p1, p2) << endl;
return 0;
}
在这个程序中,我们定义了一个Point类和一个Distance类。其中,Point类表示平面上的一个点,Distance类用来计算两点之间的距离。我们将GetDistance函数定义为Point类的友元函数,这样我们就可以在GetDistance函数中直接访问到Point类的私有成员了。在main函数中,我们创建了两个点p1和p2,并计算它们之间的距离。最后输出结果即可。
希望这个代码示例能够帮助到您!
阅读全文