用c++代码写一个定义一个点类point包含坐标x,y等属性,求出该点到原点的距离,且求距离的函数不能在类中定义
时间: 2023-04-10 09:04:47 浏览: 131
以下是C知道的回答:
可以使用以下代码来定义一个点类point:
```
typedef struct {
double x;
double y;
} point;
```
要计算该点到原点的距离,可以使用以下代码:
```
#include <math.h>
double distance(point p) {
return sqrt(p.x * p.x + p.y * p.y);
}
```
在这个函数中,我们使用了数学库中的sqrt函数来计算平方根,以求出距离。注意,这个函数并没有在类中定义,而是在类外定义的。
希望这个回答能够帮到你!
相关问题
使用c++编写一个二维点和三维点类。 要求: (1)二维点类有x,y坐标属性,编写计算点到坐标原点距离函数; (2)三维点从二维点派生而来,编写计算点到坐标原点距离函数。
好的,下面是使用C++编写的二维点和三维点类:
```c++
#include <iostream>
#include <cmath>
using namespace std;
// 二维点类
class Point2D {
private:
double x, y;
public:
Point2D(double x, double y) {
this->x = x;
this->y = y;
}
double distance_to_origin() {
return sqrt(x * x + y * y);
}
};
// 三维点类
class Point3D : public Point2D {
private:
double z;
public:
Point3D(double x, double y, double z) : Point2D(x, y) {
this->z = z;
}
double distance_to_origin() {
return sqrt(x * x + y * y + z * z);
}
};
```
在二维点类中,我们定义了`x`和`y`两个私有属性,并且实现了计算点到坐标原点距离的函数`distance_to_origin`。在三维点类中,我们从二维点类派生而来,并且增加了`z`私有属性,并且重写了计算点到坐标原点距离的函数`distance_to_origin`。由于二维点类和三维点类都具有`distance_to_origin`函数,因此在使用时,会自动调用相应对象所属的类的函数。
写代码c++:定义Point类描述点的坐标,可以输出坐标,可以求两个点之间的距离。 主函数声明Point类数组Point p[5],输入5个点的坐标,根据5个点与原点[0,0]之间的距离,由近至远排序输出距离值。 【输入形式】 5个点坐标 【输出形式】 排序后的距离值 【样例输入】 2 3 1 3 6 3 8 7 4 5 【样例输出】 与原点的距离: 3.16 3.61 6.40 6.71 10.63
以下是C++代码实现:
```cpp
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
class Point {
public:
double x, y;
Point() {}
Point(double _x, double _y) : x(_x), y(_y) {}
void print() const {
cout << "(" << x << ", " << y << ")";
}
double distanceTo(const Point& p) const {
double dx = x - p.x, dy = y - p.y;
return sqrt(dx * dx + dy * dy);
}
};
bool cmp(const Point& p1, const Point& p2) {
double dist1 = p1.distanceTo(Point(0, 0));
double dist2 = p2.distanceTo(Point(0, 0));
return dist1 < dist2;
}
int main() {
Point p[5];
for (int i = 0; i < 5; ++i) {
cin >> p[i].x >> p[i].y;
}
sort(p, p + 5, cmp);
cout << "与原点的距离:\n";
for (int i = 0; i < 5; ++i) {
cout << p[i].distanceTo(Point(0, 0)) << " ";
}
cout << endl;
return 0;
}
```
代码思路:
定义一个Point类来描述点的坐标,包含x和y两个成员变量,以及输出坐标和求两点之间距离的函数。
在主函数中,定义一个Point类数组Point p[5],并且输入5个点的坐标。然后,利用sort函数对这5个点进行排序,排序的规则是按照与原点的距离由近至远排序。最后,输出排序后的距离值即可。
需要注意的是,这里我们自己定义了一个cmp函数来作为sort函数的比较函数。在cmp函数中,我们利用Point类的distanceTo函数来计算每个点与原点之间的距离,然后按照距离从小到大排序。
阅读全文