跳至主要內容

23.C++重载运算符

约 176 字小于 1 分钟

重载运算符

运算符重载(Operator Overloading)允许我们自定义某些运算符的行为,使其适用于用户定义的类型(如 class 或 struct)。 这使得对象能够使用类似于内置数据类型的操作符,例如 +, -, *, /, == 等

语法

返回类型 operator 运算符 (参数列表) {
    // 运算符实现
}
#include <iostream>

class Complex {
public:
    double real, imag;

    Complex(double r = 0, double i = 0) : real(r), imag(i) {}

    // 重载 + 运算符
    Complex operator+(const Complex& c) const {
        return Complex(real + c.real, imag + c.imag);
    }

    void display() const {
        std::cout << real << " + " << imag << "i" << std::endl;
    }
};

int main() {
    Complex c1(3, 4), c2(1, 2);
    Complex c3 = c1 + c2;  // 调用运算符重载
    c3.display();  // 输出:4 + 6i
    return 0;
}