【发布时间】:2021-06-15 23:31:00
【问题描述】:
- 请设计一个Point类来表示平面坐标上的一个点。
- 给这个类两个私有数据成员 x 和 y 代表 点的位置,x 和 y 为浮点型。
- 创建一个默认构造函数将 x 和 y 设置为 0。
- 创建一个带有两个浮点参数的构造函数来设置 x 和 y。
- 创建一个公共函数成员 printPoint 以显示为格式 比如“(x, y)”
- 创建公共函数成员getX、setX、getY、setY来访问 数据成员 x 和 y。
- 使用一种 Point 类型创建公共函数成员 getDistance 参数,返回一个float类型的值代表两个的距离 点。
- 请设计一个类 Segment 表示平面上的一个段 坐标。
- 给这个类两个私有数据成员point1和point2代表 此段的端点。
- 创建一个默认构造函数,将两个端点都设置为 (0, 0)。
- 创建一个以两个Point对象为参数的构造函数来设置两个 端点。
- 实现以下函数成员
float getLength(); //无参数,返回段的长度。
我不知道第 10 步、第 11 步和第 12 步该怎么做。 这是我的代码。 我需要有人教我,谢谢!!!
#include <math.h>
class Point
{
public:
Point()
{
x = y = 0;
}
Point(float x1, float y1)
{
x = x1;
y = y1;
}
void setX(float X)
{
x = X;
}
float getX()
{
return x;
}
void setY(float Y)
{
y = Y;
}
float getY()
{
return y;
}
void printPoint()
{
std::cout << "(" << x << ", " << y << ")";
}
float getDistance(Point p2)
{
return sqrt(pow(getX() - p2.getX(), 2) + pow(getY() - p2.getY(), 2));
}
private:
float x;
float y;
};
class Segment : public Point
{
public:
Segment()
{
point1 = {};
point2 = {};
}
Segment(Point pt1, Point pt2)
{
point1 = pt1;
point2 = pt2;
}
float getLength()
{
return sqrt(pow(point1.getX() - point2.getX(), 2) + pow(point1.getY() - point2.getY(), 2));
}
private:
Point point1;
Point point2;
};
【问题讨论】:
-
为什么你不能这样做?你知道什么是默认构造函数吗?实际上看起来你已经做了 10)
-
“我不知道第 10 步、第 11 步和第 12 步该怎么做。” - 但是,你已经做到了,不是吗?这段代码有什么问题?
-
我上传的在线判断是一个错误的答案。
-
“错误答案”不足以解释您的代码有什么问题
-
@d901203:你想解决什么问题?当然,在线评委不会测试您的班级功能。你的主要功能应该做什么?正如我在回答中所说,考虑将浮点数更改为双精度数