定义点类Point和线段类LineSegment。线段的两个终端为Point类对象。 (1)点类 ①私有成员变量包括x和y,双精度型,表示点的横坐标和纵坐标; ②公有成员函数包括: ·无参数构造函数(缺省构造函数),将点坐标设为(0,0); ·二参数构造函数,根据实际值赋予x和y实际坐标值; ·显示函数,用于显示x和y的值。 (2)线段类 ①私有成员变量包括两个点类对象,分别定义线段的左端点和右端点; ②公有成员函数要求实现的功能如下: ·构造函数,用于对两个点进行初始化 ·计算线段的长度 ·显示函数,用于显示线段的两个端点、线段的长度 (3)主函数里面定义2个点类的对象和1个矩形类的对象,进行测试。
时间: 2023-06-26 18:06:58 浏览: 189
以下是定义点类Point和线段类LineSegment的代码:
```c++
#include <iostream>
#include <cmath>
using namespace std;
class Point {
private:
double x, y;
public:
Point() {
x = y = 0;
}
Point(double xx, double yy) {
x = xx;
y = yy;
}
void display() {
cout << "(" << x << ", " << y << ")" << endl;
}
double get_x() {
return x;
}
double get_y() {
return y;
}
};
class LineSegment {
private:
Point left_point, right_point;
public:
LineSegment(Point p1, Point p2) {
left_point = p1;
right_point = p2;
}
double length() {
double dx = right_point.get_x() - left_point.get_x();
double dy = right_point.get_y() - left_point.get_y();
return sqrt(dx*dx + dy*dy);
}
void display() {
cout << "Left point: ";
left_point.display();
cout << "Right point: ";
right_point.display();
cout << "Length: " << length() << endl;
}
};
int main() {
Point p1(1, 2), p2(4, 6);
LineSegment ls(p1, p2);
ls.display();
return 0;
}
```
在主函数中创建了两个点对象`p1`和`p2`,并将它们作为参数传递给`LineSegment`的构造函数来创建一个线段对象`ls`。然后调用`ls`的`display`函数来输出线段的两个端点和长度。
阅读全文