C++ Day12 其他语法A-运算符重载

147 阅读1分钟
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;
}