1. 为什么要重载运算符?如何重载?
- 为什么要重载:①运算符表达式非常直观,让代码更加简洁清晰 ②默认情况下,运算符仅支持基本数据类型,想要支持自定义类型,就需要重载运算符
- 本质:
运算符重载的本质其实就是方法调用
struct Point {
int m_x;
int m_y;
Point(int x, int y): m_x(x),m_y(y) {
}
Point operator+(const Point &p) {
return Point(this->m_x + p.m_x, this->m_y + p.m_y);
}
};
int main() {
Point p1(10, 20);
Point p2(100, 200);
//下面两句代码是相同,运算符重载的本质其实就是`方法调用`
Point p3 = p1 + p2;
//Point p3 = p1.operator+(p2);
cout << p1.m_x << endl << p1.m_y << endl;
cout << p2.m_x << endl << p2.m_y << endl;
cout << p3.m_x << endl << p3.m_y << endl;
return 0;
}