运算符重载整数和复数相加
时间: 2024-02-14 07:09:18 浏览: 84
复数类的多种运算符重载
为了实现整数和复数相加的运算符重载,我们需要对 Complex 类进行修改,使它可以接受整数作为参数。修改后的 Complex 类如下:
```c++
class Complex {
private:
double real, 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+(int x) const {
return Complex(real + x, imag);
}
void Show() const {
cout << "(" << real << "+" << imag << "i)";
}
};
```
我们定义了一个新的加法运算符,用于将整数和复数相加。在该运算符中,我们将整数作为实部,虚部不变,得到一个新的复数。
现在,我们可以通过下面的代码实现测试:
```c++
int main() {
Complex z1(3, 4), z2(7), z3, z4(z1);
double x, y;
cin >> x >> y;
z3 = Complex(x, y);
cout << endl;
z3 = z3 + z2;
z3.Show();
cout << endl;
z4 = 2 + z4;
z4.Show();
cout << endl;
z4 = z4 + 2;
z4.Show();
cout << endl;
Complex z5 = z1 + 2;
z5.Show();
cout << endl;
Complex z6 = 2 + z1;
z6.Show();
return 0;
}
```
这个代码中,我们首先定义了四个复数 z1、z2、z3、z4,并且读入一个复数作为 z3。然后,我们测试了加法运算符和新定义的整数和复数相加的运算符。具体来说,我们进行了以下测试:
- z3 = z3 + z2,测试了复数和复数相加;
- z4 = 2 + z4,测试了整数和复数相加;
- z4 = z4 + 2,测试了复数和整数相加;
- z5 = z1 + 2,测试了整数和复数相加;
- z6 = 2 + z1,测试了整数和复数相加。
最后,我们输出了所有测试的结果。
阅读全文