定义一个平面点“Point”类及计算两点之间距离“Distance”类,将“Distance”类定义为“Point”类的友元类;并在main()中计算任意两点的距离
时间: 2024-06-11 16:04:49 浏览: 86
以下是C++代码实现:
```
#include <iostream>
#include <cmath>
using namespace std;
class Point;
class Distance {
public:
double calcDistance(const Point& p1, const Point& p2);
};
class Point {
private:
double x;
double y;
public:
Point(double x, double y) : x(x), y(y) {}
friend double Distance::calcDistance(const Point& p1, const Point& p2);
};
double Distance::calcDistance(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(0, 0);
Point p2(3, 4);
Distance d;
cout << "Distance between p1 and p2 is " << d.calcDistance(p1, p2) << endl;
return 0;
}
```
输出结果为:
```
Distance between p1 and p2 is 5
```
可以看到,定义了一个平面点“Point”类和一个计算两点之间距离“Distance”类。在“Distance”类中定义了一个友元函数,可以访问“Point”类的私有成员。在main()函数中,创建两个点对象和一个距离对象,并计算这两个点之间的距离。
阅读全文