声明一个复数类Complex,重载运算符 ”+”,使之能用于复数的加法运算,参加运算的两个运算量可以都是类对象,也可以其中有一个是整数,顺序任意。例如:c1+c2,i+c1,c1+i均合法。(c1,c2为复数,i为整数)。
时间: 2024-03-05 16:53:13 浏览: 112
好的,这是一个简单的Complex类的实现代码,包括重载运算符+的实现:
```c++
#include <iostream>
using namespace std;
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 int& num) const {
return Complex(real + num, imag);
}
friend Complex operator+(const int& num, const Complex& c) {
return c + num;
}
void print() const {
cout << real << " + " << imag << "i" << endl;
}
};
int main() {
Complex c1(1, 2), c2(3, 4);
c1.print();
c2.print();
Complex c3 = c1 + c2;
c3.print();
Complex c4 = 5 + c1;
c4.print();
Complex c5 = c2 + 6;
c5.print();
return 0;
}
```
在这个实现中,我们定义了一个Complex类,其中包含了实部和虚部两个成员变量。重载了运算符+,使其能够进行复数的加法运算。同时,我们还重载了运算符+,使其能够进行整数与复数的加法运算。在实现中,我们使用友元函数的方式实现了这个运算符的重载。
在主函数中,我们对这个类进行了一些简单的测试,可以看到运算符+的重载实现是正确的。
阅读全文