#include<iostream>
using namespace std;
//重载+-*/实现复数的运算 重载作为类成员函数
class Complex
{
public:
Complex(double r=0,double i=0):real(r),imag(i){}
void display();
Complex operator+(Complex&);
Complex operator-(Complex&);
Complex operator*(Complex&);
Complex operator/(Complex&);
private:
double real;
double imag;
};
Complex Complex::operator+(Complex& c)
{
return Complex(real + c.real, imag + c.imag);
}
Complex Complex::operator-(Complex& c)
{
return Complex(real - c.real, imag - c.imag);
}
Complex Complex::operator*(Complex&c)
{
return Complex(real * c.real - imag * c.imag, imag * c.real + real * c.imag);
}
Complex Complex::operator/(Complex& c)
{
return Complex((real * c.real + imag * c.imag) / (c.real * c.real + c.imag * c.imag), (imag * c.real - real * c.imag) / (c.real * c.real + c.imag * c.imag));
}
void Complex::display()
{
cout << real << "+" << imag << "i" << endl;
}
int main()
{
Complex c1(3,4), c2(5, -10),c3;
c3 = c1 + c2;
c3.display();
c3 = c1 - c2;
c3.display();
c3 = c1 * c2;
c3.display();
c3 = c1 / c2;
c3.display();
return 0;
}
09-04
443