C++设计一个点类,数据为点的纵横坐标,成员函数包含构造函数,输出函数。定义一个点类的友元函数,求两点之间的距离,
时间: 2024-10-27 07:13:52 浏览: 54
②构造函数可以重载。例-C++中类和对象课件
在C++中,我们可以设计一个名为`Point`的类来表示二维空间中的点,使用两个私有变量x和y存储点的横纵坐标。这里是一个简单的实现:
```cpp
#include <iostream>
class Point {
private:
double x; // 纵坐标
double y; // 横坐标
public:
// 构造函数,接收坐标作为参数
Point(double x = 0, double y = 0) : x(x), y(y) {}
// 输出函数,用于打印点的坐标
void display() const {
std::cout << "Point (" << x << ", " << y << ")\n";
}
// 友元函数,计算并返回两点之间的欧氏距离
friend double distance(const Point &p1, const Point &p2);
};
// 友元函数声明,允许distance访问Point类的内部信息
double distance(const Point &p1, const Point &p2);
// 实现友元函数,计算两点间距离
double distance(const Point &p1, const Point &p2) {
return std::sqrt(std::pow(p1.x - p2.x, 2) + std::pow(p1.y - p2.y, 2));
}
int main() {
Point p1(3, 4);
p1.display(); // 输出 (3, 4)
Point p2(6, 8);
p2.display(); // 输出 (6, 8)
double dist = distance(p1, p2); // 计算两点间的距离
std::cout << "Distance between points: " << dist << "\n";
return 0;
}
```
在这个例子中,`distance`函数是`Point`类的一个友元,可以访问类的私有变量。在`main`函数中创建了两个点对象,并通过友元函数计算它们之间的距离。
阅读全文