用c++设计一个复数类,包含实部和虚部两个私有成员变量。为这个类重载加法、减法、乘法和除法四个运算符,使得对两个复数进行运算时可以直接使用运算符进行操作。要求:运算符重载函数必须以成员函数或友元函数的形式实现,同时需要考虑复数的加减乘除规则。
时间: 2023-06-24 12:04:40 浏览: 132
好的,下面是一个简单的复数类的实现,包含实部和虚部两个私有成员变量,以及加法、减法、乘法和除法四个运算符的重载:
```cpp
#include <iostream>
using namespace std;
class Complex {
private:
double real;
double imag;
public:
Complex(double r, double i) {
real = r;
imag = i;
}
Complex operator+(Complex& c) {
return Complex(real + c.real, imag + c.imag);
}
Complex operator-(Complex& c) {
return Complex(real - c.real, imag - c.imag);
}
Complex operator*(Complex& c) {
return Complex(real * c.real - imag * c.imag, real * c.imag + imag * c.real);
}
Complex operator/(Complex& c) {
double r = c.real * c.real + c.imag * c.imag;
return Complex((real * c.real + imag * c.imag) / r, (imag * c.real - real * c.imag) / r);
}
void show() {
cout << "(" << real << ", " << imag << ")" << endl;
}
};
int main() {
Complex a(1, 2);
Complex b(3, 4);
Complex c = a + b;
c.show();
Complex d = a - b;
d.show();
Complex e = a * b;
e.show();
Complex f = a / b;
f.show();
return 0;
}
```
上面的代码中,我们通过重载加法、减法、乘法和除法四个运算符,实现了对两个复数进行运算的功能。需要注意的是,除法运算中需要考虑到复数的除法规则。同时,我们还实现了一个 `show` 函数,用于输出复数的实部和虚部。
阅读全文