.设计一个二维矢量类 CVtr。该类有属性:坐标 x,y;该类有方法:(A)设置和获取坐 标的方法;(B)设计函数 Sub 实现与另外一个矢量相减(x,y 各自相减);(C) 将 Sub 函 数改为重载运算符“-”的函数
时间: 2024-03-08 10:51:01 浏览: 95
好的,CVtr类的设计如下:
```C++
class CVtr {
public:
// 构造函数
CVtr(double x = 0, double y = 0) : m_x(x), m_y(y) {}
// 获取坐标
double getX() const { return m_x; }
double getY() const { return m_y; }
// 设置坐标
void setX(double x) { m_x = x; }
void setY(double y) { m_y = y; }
// 矢量相减
CVtr Sub(const CVtr& v) const {
return CVtr(m_x - v.m_x, m_y - v.m_y);
}
// 重载运算符"-"
CVtr operator-(const CVtr& v) const {
return CVtr(m_x - v.m_x, m_y - v.m_y);
}
private:
double m_x, m_y; // 坐标
};
```
这个类实现了坐标的设置和获取方法,以及矢量相减和重载运算符“-”等方法。其中,重载运算符“-”可以让我们直接使用“-”来进行矢量相减,使代码更加简洁易读。
阅读全文