C++设计一个点类,数据为点的纵横坐标,成员函数包含构造函数,输出函数。定义一个点类的友元函数,求两点之间的距离,定义一个管理类,成员函数为求解两点之间的距离和求解到原点的距离(1)将点的管理类中的两个成员函数定义为点类的友元函数(2)将点的管理类声明为点类的友元类
时间: 2024-10-27 11:03:30 浏览: 24
在C++中,我们可以创建一个名为`Point`的类来表示二维空间中的一个点,其包含横纵坐标的属性,并提供相应的构造函数和输出函数。接着,我们会定义一个友元函数`distance`来计算两点间的距离,以及一个管理类`PointManager`,作为`Point`的友元类,其中包含计算距离的相关功能。
首先,我们定义`Point`类:
```cpp
class Point {
public:
// 构造函数
Point(double x = 0, double y = 0) : x(x), y(y) {}
// 输出函数
void display() const {
std::cout << "Point (" << x << ", " << y << ")\n";
}
private:
double x, y;
};
// 友元函数,用于计算两点间距离
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));
}
// 管理类PointManager
class PointManager {
public:
// 成员函数,作为点类的友元函数
friend double distance(const Point& point1, const Point& point2);
friend double distanceToOrigin(const Point& point);
// 计算两点间的距离
static double calculateDistance(const Point& p1, const Point& p2) {
return distance(p1, p2);
}
// 计算点到原点的距离
static double calculateDistanceToOrigin(const Point& point) {
return distance(point, Point(0, 0));
}
};
```
阅读全文