定义一个点类CPoint,定义一个线段类CLine,计算线段长度。使用类的组合(对象成员)实现
时间: 2024-02-20 19:02:27 浏览: 24
好的,我来为您解答这个问题。
首先,我们需要定义一个点类CPoint,这个类可以包含两个成员变量,分别表示这个点的x坐标和y坐标。然后,我们再定义一个线段类CLine,这个类可以包含两个CPoint对象,分别表示这条线段的起点和终点。
下面是CPoint类的定义:
```c++
class CPoint {
public:
CPoint(double x = 0.0, double y = 0.0) : m_x(x), m_y(y) {}
double getX() const { return m_x; }
double getY() const { return m_y; }
private:
double m_x;
double m_y;
};
```
这个类只有两个成员变量,分别表示x坐标和y坐标。构造函数可以设置这两个值,getX和getY函数可以获取这两个值。
接下来是CLine类的定义:
```c++
#include <cmath>
class CLine {
public:
CLine(const CPoint& start, const CPoint& end) : m_start(start), m_end(end) {}
double getLength() const {
double dx = m_start.getX() - m_end.getX();
double dy = m_start.getY() - m_end.getY();
return sqrt(dx * dx + dy * dy);
}
private:
CPoint m_start;
CPoint m_end;
};
```
这个类包含两个CPoint对象,分别表示线段的起点和终点。构造函数可以初始化这两个对象。getLength函数可以计算这条线段的长度,使用勾股定理计算即可。
最后,我们可以在主函数中创建两个点对象和一个线段对象,并调用getLength函数计算线段长度:
```c++
int main() {
CPoint p1(0.0, 0.0);
CPoint p2(3.0, 4.0);
CLine line(p1, p2);
double length = line.getLength();
std::cout << "The length of the line is " << length << std::endl;
return 0;
}
```
这个程序会输出 "The length of the line is 5",表示这条线段的长度为5。