用C++设计一个描述点的类,其中包含一对坐标点数据成员、一个求两个点之间距离的友元函数和显示坐标点的成员函数,并编程实现(数据自定义)。 提示: 需要使用计算两点(a,b)和(c,d)之间的距离公式,并定义坐标点类的友元函数来计算两点间的距离。
时间: 2024-11-20 07:39:52 浏览: 25
友元机制计算两点之间的距离
首先,我们创建一个名为`Point`的类,包含两个私有数据成员`x`和`y`表示坐标点,然后定义两个公共成员函数:一个友元函数`distanceTo`用于计算与其他点的距离,以及一个`display`函数用于打印点的坐标。以下是完整的代码实现:
```cpp
#include <iostream>
#include <cmath> // 引入math库以使用sqrt函数
class Point {
private:
double x;
double y;
public:
// 构造函数
Point(double xCoord, double yCoord)
: x(xCoord), y(yCoord) {}
// 显示坐标点的成员函数
void display() {
std::cout << "Coordinates: (" << x << ", " << y << ")" << std::endl;
}
// 友元函数:计算与其他点距离
friend double distanceTo(const Point& p1, const Point& p2); // 声明distanceTo为友元函数
// 计算当前点到另一个点的距离
double distanceTo(const Point& other) const {
double dx = other.x - x;
double dy = other.y - y;
return std::sqrt(dx * dx + dy * dy); // 使用欧几里得距离公式
}
};
// 主函数测试
int main() {
Point point1(1.0, 2.0);
Point point2(4.0, 6.0);
point1.display(); // 打印第一个点的坐标
std::cout << "Distance between point1 and point2: " << distanceTo(point1, point2) << std::endl;
return 0;
}
```
这个代码定义了一个`Point`类,包含了坐标点的数据成员`x`和`y`,并且有一个`display`函数来显示坐标。`distanceTo`函数是一个友元函数,可以访问类的私有成员,并计算两个点之间的距离。
在`main`函数中,我们创建了两个点对象`point1`和`point2`,分别打印它们的坐标,并计算两者之间的距离。
阅读全文