用C++编写声明一个复数类Complex,重载运算符“+”、“-”、 6大2、“p”,使之能用于复数的加、减、 乘、除。运算符重载函数,编写程序
时间: 2023-11-24 18:05:20 浏览: 41
好的,以下是C++代码实现:
```c++
#include <iostream>
using namespace std;
class Complex {
private:
double real, imag;
public:
Complex(double r = 0, double i = 0) : real(r), imag(i) {}
Complex operator+(const Complex& c) const {
return Complex(real + c.real, imag + c.imag);
}
Complex operator-(const Complex& c) const {
return Complex(real - c.real, imag - c.imag);
}
Complex operator*(const Complex& c) const {
return Complex(real * c.real - imag * c.imag, real * c.imag + imag * c.real);
}
Complex operator/(const Complex& c) const {
double denominator = c.real * c.real + c.imag * c.imag;
return Complex((real * c.real + imag * c.imag) / denominator, (imag * c.real - real * c.imag) / denominator);
}
Complex operator-() const {
return Complex(-real, -imag);
}
Complex operator~() const {
return Complex(real, -imag);
}
friend ostream& operator<<(ostream& os, const Complex& c);
};
ostream& operator<<(ostream& os, const Complex& c) {
os << "(" << c.real << ", " << c.imag << "i)";
return os;
}
int main() {
Complex a(1, 2), b(3, 4);
cout << "a + b = " << a + b << endl;
cout << "a - b = " << a - b << endl;
cout << "a * b = " << a * b << endl;
cout << "a / b = " << a / b << endl;
cout << "-a = " << -a << endl;
cout << "~a = " << ~a << endl;
return 0;
}
```
我们在 Complex 类中定义了 `real` 和 `imag` 两个私有成员变量,表示实部和虚部。然后重载了加、减、乘、除、负号和取共轭运算符。最后,我们还重载了 `<<` 运算符,以便能够像输出其他变量一样输出复数。
在 `main` 函数中,我们创建了两个复数 `a` 和 `b`,并对其进行加、减、乘、除、负号和取共轭运算,输出结果。