c++重载运算符加法扩展
时间: 2023-07-19 13:06:42 浏览: 107
c++重载加法
在C++中,我们可以通过重载运算符来实现自定义类型的加法操作。以下是重载运算符加法的扩展示例:
```c++
#include <iostream>
using namespace std;
class Complex {
public:
double real;
double imag;
Complex() {
real = 0;
imag = 0;
}
Complex(double r, double i) {
real = r;
imag = i;
}
Complex operator+(Complex const &obj) {
Complex res;
res.real = real + obj.real;
res.imag = imag + obj.imag;
return res;
}
Complex operator+(double const &d) {
Complex res;
res.real = real + d;
res.imag = imag;
return res;
}
};
int main() {
Complex a(1, 2), b(2, 3), c;
c = a + b; // 调用 Complex operator+(Complex const &obj)
cout << "a + b = " << c.real << " + " << c.imag << "i" << endl;
c = a + 2.0; // 调用 Complex operator+(double const &d)
cout << "a + 2 = " << c.real << " + " << c.imag << "i" << endl;
return 0;
}
```
在这个示例中,我们定义了一个复数类 `Complex`,并重载了运算符 `+`。除了常规的 `Complex operator+(Complex const &obj)`,我们还定义了一个扩展的 `Complex operator+(double const &d)`,该运算符接受一个 `double` 类型的参数,表示在实部上加上一个常数。
在 `main` 函数中,我们分别演示了两种情况下的加法操作。当我们执行 `c = a + b` 时,将会调用常规的 `Complex operator+(Complex const &obj)`,返回一个新的 `Complex` 对象,表示两个复数相加的结果。当我们执行 `c = a + 2.0` 时,将会调用扩展的 `Complex operator+(double const &d)`,返回一个新的 `Complex` 对象,表示在实部上加上一个常数的结果。
运行结果如下:
```
a + b = 3 + 5i
a + 2 = 3 + 2i
```
阅读全文