定义点类Point和线段类LineSegment。线段的两个终端为Point类对象。 (1)点类 ①私有成员变量包括x和y,双精度型,表示点的横坐标和纵坐标; ②公有成员函数包括: ·无参数构造函数(缺省构造函数),将点坐标设为(0,0); ·二参数构造函数,根据实际值赋予x和y实际坐标值; ·显示函数,用于显示x和y的值。 (2)线段类 ①私有成员变量包括两个点类对象,分别定义线段的左端点和右端点; ②公有成员函数要求实现的功能如下: ·构造函数,用于对两个点进行初始化 ·计算线段的长度 ·显示函数,用于显示线段的两个端点、线段的长度 (3)主函数里面定义2个点类的对象和1个矩形类的对象,进行测试。
时间: 2024-02-06 08:11:36 浏览: 45
好的,我来解答您的问题。
下面是点类Point和线段类LineSegment的定义:
```c++
#include<iostream>
#include<cmath>
using namespace std;
class Point {
private:
double x, y;
public:
Point() { x = y = 0; }
Point(double a, double b) { x = a; y = b; }
void display() { cout << "(" << x << ", " << y << ")" << endl; }
friend class LineSegment;
};
class LineSegment {
private:
Point left, right;
public:
LineSegment(Point a, Point b) { left = a; right = b; }
double length() { return sqrt(pow(left.x - right.x, 2) + pow(left.y - right.y, 2)); }
void display() {
cout << "Left point: "; left.display();
cout << "Right point: "; right.display();
cout << "Length: " << length() << endl;
}
};
```
在主函数里面,我们可以定义两个点类的对象和一个线段类的对象,并进行测试:
```c++
int main() {
Point p1, p2(3, 4);
LineSegment line(p1, p2);
cout << "Point 1: "; p1.display();
cout << "Point 2: "; p2.display();
line.display();
return 0;
}
```
输出结果如下:
```
Point 1: (0, 0)
Point 2: (3, 4)
Left point: (0, 0)
Right point: (3, 4)
Length: 5
```
注意,这里的矩形类并没有定义,而是定义了线段类。如果需要定义矩形类,可以在点类和线段类的基础上进行扩展。