引言
C++ 是一种支持面向对象编程(OOP)的编程语言,它允许程序员通过运算符重载来自定义类的行为。运算符重载使得我们可以为自定义类型定义与内置类型相似的操作方式,从而使代码更加直观和易读。
本文将详细介绍 C++ 中的运算符重载机制,包括常见的运算符、重载方法以及注意事项,帮助读者理解并掌握这一强大的特性。
1. 什么是运算符重载?
运算符重载是指为已有的运算符赋予新的含义,使其能够操作用户自定义的数据类型(如类或结构体)。通过运算符重载,我们可以让自定义类型像内置类型一样使用标准运算符,从而提高代码的可读性和简洁性。
例如,假设我们有一个复数类 Complex
,我们可以通过运算符重载来实现复数之间的加法、减法等操作:
class Complex {
private:
double real;
double imag;
public:
Complex(double r = 0, double i = 0) : real(r), imag(i) {}
// 加法运算符重载
Complex operator+(const Complex& other) const {
return Complex(real + other.real, imag + other.imag);
}
// 减法运算符重载
Complex operator-(const Complex& other) const {
return Complex(real - other.real, imag - other.imag);
}
// 打印函数
void print() const {
std::cout << "(" << real << ", " << imag << "i)" << std::endl;
}
};
int main() {
Complex c1(3, 4);
Complex c2(1, 2);
Complex sum = c1 + c2;
Complex diff = c1 - c2;
sum.print(); // 输出: (4, 6i)
diff.print(); // 输出: (2, 2i)
return 0;
}
在这个例子中,我们为 Complex
类重载了加法运算符 +
&nbs