c++编写程序设计一个名为Point的类,表示平面坐标下的一个点,这个类包括: (1)两个double 型数据成员:x, y,分别表示横坐标和纵坐标 (2)一个不带形参的构造函数,用于创建原点:(0,0) (3)一个带形参的构造函数:Point(double x, double y) (4)成员函数getx(),返回横坐标 (5)成员函数gety(),返回纵坐标 (6)成员函数dist(constPoint& p),返回当前点与给定点的距离 然后在Point 类的基础上定义派生类Point3D,表示三维空间的一个点,包括: (1)一个double 型数据成员:z,表示z-坐标 (2)一个不带形参的构造函数,用于创建原点:(0,0,0) (3)一个带形参的构造函数:Point3D(double x, double y, double z) (4)成员函数getz(),返回z-坐标 (5)成员函数dist(constPoint3D& p),返回当前点与给定点的距离 实现这个类,并在主函数中测试这个类:创建三维空间坐标点A(0,0,0)和B(4,5.6,7.8),并输出它们之间的距离。 【输入形式】无 【输出形式】三维空间坐标点A和B的距离。 【样例输入】无 【样例输出】|A-B|=10.4019
时间: 2024-03-22 08:42:18 浏览: 143
C++point的编写
下面是一个实现题目要求的代码:
```c++
#include <iostream>
#include <cmath>
using namespace std;
class Point {
private:
double x, y;
public:
Point(double x = 0, double y = 0) : x(x), y(y) {}
double getx() const {
return x;
}
double gety() const {
return y;
}
double dist(const Point& p) const {
double dx = x - p.x;
double dy = y - p.y;
return sqrt(dx * dx + dy * dy);
}
};
class Point3D : public Point {
private:
double z;
public:
Point3D(double x = 0, double y = 0, double z = 0) : Point(x, y), z(z) {}
double getz() const {
return z;
}
double dist(const Point3D& p) const {
double dx = getx() - p.getx();
double dy = gety() - p.gety();
double dz = z - p.z;
return sqrt(dx * dx + dy * dy + dz * dz);
}
};
int main() {
Point3D A(0, 0, 0), B(4, 5.6, 7.8);
cout << "|A-B|=" << A.dist(B) << endl;
return 0;
}
```
运行结果:
```
|A-B|=10.4019
```
阅读全文