设计一个描述点的类,其中包含一对坐标点数据成员、一个求两个点之间距离的友元函数和显示坐标点的成员函数,并编程实现(数据自定义)。 提示: 需要使用计算两点(a,b)和(c,d)之间的距离公式,并定义坐
时间: 2024-11-17 19:28:35 浏览: 8
C++计算两点之间的距离(两种实现方式)
设计一个简单的`Point`类,可以描述二维空间中的点,包含两个私有成员变量`x`和`y`表示坐标,同时定义一个友元函数`distance_to`用于计算与其他点的距离,以及一个公共的`display`函数用于打印点的坐标。以下是C++语言的一个实现:
```cpp
#include <iostream>
#include <cmath> // 引入计算平方根的头文件
class Point {
private:
double x;
double y;
public:
// 构造函数,初始化点的坐标
Point(double x = 0, double y = 0) : x(x), y(y) {}
// 友元函数 - 计算两点间的欧氏距离
friend double distance_to(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);
}
// 显示点的坐标
void display() const {
std::cout << "Point (" << x << ", " << y << ")\n";
}
};
int main() {
// 创建并初始化两个点
Point p1(3, 4);
Point p2(6, 8);
// 使用友元函数计算距离
double dist = distance_to(p1, p2);
std::cout << "Distance between point 1 and 2: " << dist << "\n";
// 显示点的坐标
p1.display();
p2.display();
return 0;
}
```
在这个例子中,`distance_to`函数接收两个`Point`类型的引用作为参数,计算它们之间的距离。`main`函数创建了两个`Point`对象,并展示它们的坐标以及两者之间的距离。
阅读全文