请写一段代码对运算符重载进行举例
时间: 2024-03-13 18:48:17 浏览: 69
好的,以下是一个简单的运算符重载的例子:
```cpp
#include <iostream>
using namespace std;
class Complex {
public:
double real;
double imag;
Complex(double r = 0.0, double i = 0.0) {
real = r;
imag = i;
}
Complex operator+(const Complex& c) {
return Complex(real + c.real, imag + c.imag);
}
};
int main() {
Complex a(1.0, 2.0);
Complex b(3.0, 4.0);
Complex c = a + b;
cout << "c.real = " << c.real << ", c.imag = " << c.imag << endl;
return 0;
}
```
在上面的例子中,我们定义了一个名为 `Complex` 的类,该类表示一个复数对象,包含实部 `real` 和虚部 `imag` 两个成员变量。在该类中,我们重载了加法运算符 `+`,使得两个 `Complex` 类型的对象可以直接相加。在 `main` 函数中,我们创建了两个 `Complex` 类型的对象 `a` 和 `b`,然后将它们相加并赋值给 `c`。最后,我们输出了 `c` 对象的实部和虚部。
需要注意的是,重载运算符时,我们需要按照其语义进行实现,例如加法运算符的语义是将两个对象相加并返回一个新对象,因此我们在 `operator+` 函数中实现了这个逻辑。同时,我们也可以重载其他运算符,例如减法运算符 `-`、乘法运算符 `*`、比较运算符 `==` 等。
阅读全文