编写一个表示平面点的类 ,使用浮点数私有成员表示坐标 。定 义一个自由函数,用于计算两个点之间的距离,该函数声明为 类的友元。
时间: 2024-12-15 19:19:25 浏览: 1
在C++中,我们可以创建一个表示平面点的Point类,并定义一个友元函数来计算两点之间的欧氏距离。以下是相关的代码:
```cpp
#include <cmath>
class Point {
private:
float x; // 表示横坐标
float y; // 表示纵坐标
public:
// 构造函数
Point(float x = 0.0f, float y = 0.0f) : x(x), y(y) {}
// 获取坐标
float getX() const { return x; }
float getY() const { return y; }
// 计算并返回两点间距离的友元函数
friend float distance(const Point& p1, const Point& p2);
// 显示点的信息
void display() const {
std::cout << "Point (" << x << ", " << y << ")" << std::endl;
}
};
// 友元函数,计算两点之间的欧氏距离
float distance(const Point& p1, const Point& p2) {
return std::sqrt(std::pow(p1.getX() - p2.getX(), 2) + std::pow(p1.getY() - p2.getY(), 2));
}
int main() {
Point p1(3.0f, 4.0f);
Point p2(6.0f, 8.0f);
p1.display();
p2.display();
float dist = distance(p1, p2);
std::cout << "Distance between points: " << dist << std::endl;
return 0;
}
```
在这个例子中,我们首先定义了Point类,它有两个私有成员x和y分别代表点的坐标。然后,我们定义了一个友元函数distance,它可以访问Point类的内部数据来计算两点间的距离。`main`函数中创建了两个点,打印它们的位置,并计算两者之间的距离。
阅读全文