定义一个点类CPoint,定义一个线段类CLine,计算线段长度。使用类的组合(对象成员)实现
时间: 2024-02-21 11:00:53 浏览: 145
声明一个类Point,然后利用它声明一个组合类Line,实现由用户输入两点确定直线的长度和斜率,编写程序实现测试
5星 · 资源好评率100%
好的,我来为您解答这个问题。
首先,我们需要定义点类CPoint。点类CPoint可以包括两个私有成员变量x和y,分别表示点的横坐标和纵坐标。同时,我们还可以定义一个公有成员函数,用于设置点的坐标。
```c++
class CPoint {
public:
CPoint() : x(0), y(0) {}
CPoint(double x_, double y_) : x(x_), y(y_) {}
void set(double x_, double y_) { x = x_; y = y_; }
private:
double x;
double y;
};
```
接下来,我们需要定义线段类CLine。线段类CLine可以包括两个私有成员变量p1和p2,分别表示线段的起点和终点。同时,我们还可以定义一个公有成员函数,用于计算线段长度。
```c++
#include <cmath>
class CLine {
public:
CLine() {}
CLine(CPoint p1_, CPoint p2_) : p1(p1_), p2(p2_) {}
double length() const {
double dx = p1.x - p2.x;
double dy = p1.y - p2.y;
return std::sqrt(dx * dx + dy * dy);
}
private:
CPoint p1;
CPoint p2;
};
```
最后,我们可以使用类的组合(对象成员)实现计算线段长度。具体而言,我们可以在主函数中创建两个点对象p1和p2,然后将它们作为参数传递给线段对象l1,最后调用l1的length函数即可计算出线段的长度。
```c++
int main() {
CPoint p1(0, 0), p2(3, 4);
CLine l1(p1, p2);
double len = l1.length();
std::cout << "The length of line l1 is " << len << std::endl;
return 0;
}
```
以上就是使用类的组合(对象成员)实现计算线段长度的方法。希望能够对您有所帮助!
阅读全文