使用c++设计一个用于描述三维空间中的点类Point,主要包含下面功能,设计合适的构造函数,完成初始化工作,设计函数,求点关于X轴对称的点,设计函数,求两点之间的距离,设计函数,判断两个点是否相等,设计打印点信息的函数。
时间: 2023-06-13 18:05:51 浏览: 105
以下是C++代码实现:
```c++
#include <iostream>
#include <cmath>
using namespace std;
class Point {
public:
// 构造函数
Point(double x = 0, double y = 0, double z = 0) : x(x), y(y), z(z) {}
// 求点关于X轴对称的点
Point reflectX() const {
return Point(x, -y, -z);
}
// 求两点之间的距离
double distance(const Point& p) const {
double dx = x - p.getX();
double dy = y - p.getY();
double dz = z - p.getZ();
return sqrt(dx*dx + dy*dy + dz*dz);
}
// 判断两个点是否相等
bool equals(const Point& p) const {
return x == p.getX() && y == p.getY() && z == p.getZ();
}
// 打印点信息
void print() const {
cout << "(" << x << ", " << y << ", " << z << ")" << endl;
}
// 获取点的X坐标
double getX() const {
return x;
}
// 获取点的Y坐标
double getY() const {
return y;
}
// 获取点的Z坐标
double getZ() const {
return z;
}
private:
double x, y, z;
};
int main() {
Point p1(1, 2, 3);
Point p2(4, 5, 6);
// 求点关于X轴对称的点
Point p3 = p1.reflectX();
p3.print();
// 求两点之间的距离
cout << "distance between p1 and p2: " << p1.distance(p2) << endl;
// 判断两个点是否相等
if (p1.equals(p2)) {
cout << "p1 equals p2" << endl;
} else {
cout << "p1 doesn't equal p2" << endl;
}
return 0;
}
```
输出结果为:
```
(1, -2, -3)
distance between p1 and p2: 5.19615
p1 doesn't equal p2
```
阅读全文