C++ 运算符重载:让自定义类型像内置类型一样运算
运算符重载是 C++ 静态多态的重要体现,它允许为类或结构体重新定义运算符的行为。通过这一机制,我们可以让自定义对象参与加减乘除、比较等运算,就像使用 int 或 double 一样自然。
核心概念与价值
运算符重载的本质是函数重载。它的核心价值在于三点:
- 简化代码:用直观的运算符替代繁琐的成员函数调用,提升可读性。
- 统一风格:让自定义类型的逻辑与内置类型保持一致,降低学习成本。
- 扩展功能:根据业务需求定制运算行为。
需要注意的是,重载不会改变运算符的优先级、结合性以及操作数的个数。
基本语法形式
成员函数重载
将运算符函数定义为类的成员函数时,一元运算符没有参数,二元运算符只有一个参数(右侧操作数),左侧操作数隐含为 this 指针。
#include <iostream>
using namespace std;
class Point {
public:
int x, y;
Point(int x = 0, int y = 0) : x(x), y(y) {}
// 成员函数重载 + 运算符
Point operator+(const Point& p) {
return Point(this->x + p.x, this->y + p.y);
}
void print() {
cout << "(" << x << ", " << y << ")" << endl;
}
};
int main() {
Point p1(1, 2), ;
Point p3 = p1 + p2;
p();
;
}


