c++实现一个二维矢量的类同时重载加减运算符
时间: 2024-09-28 09:10:20 浏览: 60
在C++中,为了实现一个二维向量类并重载加法 (+) 和减法 (-) 运算符,你可以按照以下步骤操作:
```cpp
class Vector2D {
private:
double x;
double y;
public:
// 构造函数
Vector2D(double x = 0, double y = 0) : x(x), y(y) {}
// 获取和设置坐标值
double getX() const { return x; }
double getY() const { return y; }
void setX(double newX) { x = newX; }
void setY(double newY) { y = newY; }
// 重载加法运算符 (+)
Vector2D operator+(const Vector2D& other) const {
return Vector2D(x + other.x, y + other.y);
}
// 重载减法运算符 (-)
Vector2D operator-(const Vector2D& other) const {
return Vector2D(x - other.x, y - other.y);
}
// 用于打印向量的友元函数(也可以直接在这个类里定义)
friend std::ostream& operator<<(std::ostream& os, const Vector2D& vec);
};
// 输出向量到流的重载
std::ostream& operator<<(std::ostream& os, const Vector2D& vec) {
os << "(" << vec.getX() << ", " << vec.getY() << ")";
return os;
}
// 示例如何使用这个类
int main() {
Vector2D v1(1, 2);
Vector2D v2(3, 4);
Vector2D sum = v1 + v2; // v1 + v2 的结果将是一个新的 Vector2D 对象
Vector2D diff = v1 - v2; // v1 - v2 的结果也是一个新的 Vector2D 对象
std::cout << "v1 + v2 = " << sum << "\n";
std::cout << "v1 - v2 = " << diff << "\n";
return 0;
}
```
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)