c++运算符 重载,示例代码
时间: 2024-12-02 17:12:45 浏览: 10
C++运算符重载是指程序员可以自定义已有的C++内置运算符的行为,使其适用于特定的数据类型或类。这通常通过在类中提供特殊成员函数(称为运算符函数)来实现。例如,你可以重载加法运算符`+`,使其能够处理你的自定义数据类型。
下面是一个简单的C++运算符重载的示例,我们将重载`+`运算符用于向量(Vector)的元素相加:
```cpp
#include <iostream>
#include <vector>
class Vector {
public:
int data;
Vector(int val = 0) : data(val) {}
// 运算符重载:将两个Vector相加
Vector operator+(const Vector &other) {
Vector result(data + other.data);
return result;
}
// 为了支持自增操作,还可以重载"++"运算符
Vector& operator++() {
data++;
return *this;
}
// 输出Vector内容方便测试
void print() const {
std::cout << "Vector (" << data << ")\n";
}
};
int main() {
Vector v1(3);
Vector v2(5);
Vector sum = v1 + v2; // 自动调用我们重载的+
std::cout << "Sum: ";
sum.print(); // 输出结果
v1++; // 自动调用我们重载的++
std::cout << "After increment: ";
v1.print(); // 输出结果
return 0;
}
```
在这个例子中,当你对`v1`和`v2`执行`v1 + v2`时,实际上是调用了我们自定义的`operator+`函数,生成一个新的`Vector`对象。同样地,`++v1`会触发`operator++`函数。
阅读全文