1.设计并测试点类Point,其数据成员是直角坐标系的点坐标(私有成员),友元函数dist用来计算两点间的距离。
时间: 2024-02-09 11:12:19 浏览: 76
好的,下面是设计并测试点类Point的代码:
```c++
#include <cmath> // 使用 sqrt 函数需要 include cmath 头文件
class Point {
private:
double x; // 点的 x 坐标
double y; // 点的 y 坐标
public:
Point(double x, double y) : x(x), y(y) {} // 构造函数,初始化点的坐标
friend double dist(const Point& p1, const Point& p2); // 友元函数,计算两点间的距离
};
double dist(const Point& p1, const Point& p2) {
double dx = p1.x - p2.x;
double dy = p1.y - p2.y;
return sqrt(dx * dx + dy * dy);
}
```
在这个代码中,我们定义了一个点类 `Point`,其数据成员是点的直角坐标系坐标(私有成员)。我们还定义了一个友元函数 `dist`,用来计算两个点之间的距离。在友元函数中,我们使用了 `sqrt` 函数来计算平方根,因此需要 include cmath 头文件。
我们可以编写以下测试代码来测试这个点类:
```c++
#include <iostream>
using namespace std;
int main() {
Point p1(1, 2);
Point p2(4, 6);
cout << "The distance between p1 and p2 is " << dist(p1, p2) << endl;
return 0;
}
```
在测试代码中,我们创建了两个点 `p1` 和 `p2`,然后计算并输出它们之间的距离。运行程序,输出结果如下:
```
The distance between p1 and p2 is 5
```
可以看到,我们成功地设计并测试了点类 `Point`,以及计算两点间距离的友元函数 `dist`。
阅读全文