你能举一个C++中运算符重载的例子吗?
时间: 2024-11-15 08:21:43 浏览: 5
当然可以。在C++中,我们可以重载简单的算术运算符比如加法(`+`)和自增(`++`)来适应特定类型的操作。这里是一个简单的例子,假设我们有一个名为`Point`的类,它表示二维坐标,我们可以重载加法运算符使得两个点相加:
```cpp
class Point {
private:
double x;
double y;
public:
Point(double x = 0, double y = 0) : x(x), y(y) {}
// 重载加法运算符
Point operator+(const Point& other) const {
return Point{x + other.x, y + other.y};
}
// 重载自增运算符,即移动到下一个坐标
Point& operator++() {
x++;
y++;
return *this;
}
};
int main() {
Point p1(1, 2);
Point p2(3, 4);
// 创建一个新的点,等于p1和p2的和
Point sum = p1 + p2;
std::cout << "Sum of points: (" << sum.x << ", " << sum.y << ")" << std::endl;
// 移动p1到下一个坐标
p1++;
std::cout << "Moved p1 to: (" << p1.x << ", " << p1.y << ")" << std::endl;
return 0;
}
```
在这个例子中,`operator+`负责将两个点的坐标相加,而`operator++`则实现了点的坐标递增。
阅读全文