7-1 复数类的运算

发布时间 2023-04-12 12:47:03作者: a_true

#include<iostream>
using namespace std;

class Complex
{
public:
Complex(double r = 0, double i = 0) :real(r), imag(i) { }
Complex operator+(Complex& c2) const;//重载双目运算符'+'
Complex operator-=(Complex& c2); //重载双目运算符'-='
friend Complex operator-(Complex& c1, Complex& c2);//重载双目运算符'-'
void Display() const;
private:
double real;
double imag;
};
Complex Complex::operator +(Complex& c2) const
{
Complex temp;
temp.real = this->real + c2.real;
temp.imag = this->imag + c2.imag;
return temp;
}
Complex Complex::operator-=(Complex& c2)
{
//Complex temp;
//temp.real = this->real - c2.real;
//temp.imag = this->imag - c2.imag;
//return temp;

this->real = this->real - c2.real;
this->imag = this->imag - c2.imag;
return *this;
}
Complex operator-(Complex &c1,Complex& c2)
{
Complex temp;
temp.real = c1.real - c2.real;
temp.imag = c1.imag - c2.imag;
return temp;
}
void Complex::Display() const
{
cout << "(" << real << ", " << imag << ")" << endl;
}

int main()
{
double r, m;
cin >> r >> m;
Complex c1(r, m);
cin >> r >> m;
Complex c2(r, m);
Complex c3 = c1 + c2;
c3.Display();
c3 = c1 - c2;
c3.Display();
c3 -= c1;
c3.Display();
return 0;
}