设计一个二维点位,从二维点位派生出三维点位,设计访问相关属性的方法以及计算点到坐标原点距离的方法,要求使用c++
时间: 2024-03-08 19:46:27 浏览: 57
好的,下面是一个基本的实现:
```cpp
class Point2D {
public:
double x;
double y;
Point2D(double x, double y) {
this->x = x;
this->y = y;
}
double distanceToOrigin() {
return sqrt(x * x + y * y);
}
};
class Point3D : public Point2D {
public:
double z;
Point3D(double x, double y, double z) : Point2D(x, y) {
this->z = z;
}
double distanceToOrigin() {
return sqrt(x * x + y * y + z * z);
}
};
```
这里定义了两个类,`Point2D` 表示二维点位,包含两个属性 `x` 和 `y`,以及一个计算到原点距离的方法 `distanceToOrigin`。`Point3D` 继承自 `Point2D`,增加了一个 `z` 属性,重写了 `distanceToOrigin` 方法以计算三维点位到原点的距离。
可以通过以下方式访问属性和方法:
```cpp
Point2D p2(3, 4);
std::cout << p2.x << ", " << p2.y << std::endl; // 输出 3, 4
std::cout << p2.distanceToOrigin() << std::endl; // 输出 5
Point3D p3(3, 4, 5);
std::cout << p3.x << ", " << p3.y << ", " << p3.z << std::endl; // 输出 3, 4, 5
std::cout << p3.distanceToOrigin() << std::endl; // 输出 7.07107
```
阅读全文