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;
}